Skip to content

Platform Template

Current implementation

This page describes what exists in source today, with its limitations. Existence of code is not evidence of publication, deployment or tested guarantees.

The ConnectSoft Platform Template provides a ready-to-use solution for building multi-service SaaS platforms with shared infrastructure, tenant management, and platform capabilities. This template generates a complete platform structure with multiple microservices, shared libraries, and infrastructure components.

Overview

The Platform Template generates a production-ready SaaS platform foundation that includes multiple microservices, shared infrastructure, tenant management, API gateway, and platform capabilities. It follows ConnectSoft's platform architecture principles and best practices for multi-tenant SaaS platforms.

When to Use This Template

Use the Platform Template when:

  • Building multi-service SaaS platforms
  • Creating platforms with shared infrastructure
  • Developing platforms with tenant management
  • Building platforms with platform capabilities
  • Creating platforms that need horizontal scaling
  • Building platforms with microservices architecture

Key Features

Multi-Service Architecture

  • Microservices: Multiple independent services
  • API Gateway: Centralized API management
  • Shared Libraries: Reusable components
  • Infrastructure: Shared infrastructure components

Tenant Management

  • Multi-Tenancy: Tenant isolation and management
  • Tenant Provisioning: Automated tenant setup
  • Tenant Configuration: Per-tenant configuration
  • Tenant Isolation: Data and resource isolation

Platform Capabilities

  • Identity Platform: Authentication and authorization
  • Audit Platform: Audit logging and compliance
  • Config Platform: Configuration management
  • Billing Platform: Subscription and billing
  • Notification Platform: Messaging and notifications

Infrastructure

  • Cloud-Native: Azure and AWS cloud infrastructure support
  • Infrastructure as Code: Pulumi (C#) for type-safe, multi-cloud infrastructure provisioning
  • Azure Infrastructure Stack: AzureInfrastructureStack.cs for Azure resources
  • AWS Infrastructure Stack: AwsInfrastructureStack.cs for AWS resources
  • Pulumi Configuration: Stack-based configuration with environment-specific settings
  • Resource Management: Service Bus, Key Vault, Cosmos DB, SQL Database, Redis, Storage Accounts, App Services, and more
  • CI/CD Pipelines: Automated deployment with infrastructure provisioning
  • Observability: Logging, metrics, tracing with OpenTelemetry support

Generated Structure

The template generates a complete platform structure:

YourPlatformName/
├── src/
│   ├── Services/
│   │   ├── Service1/
│   │   ├── Service2/
│   │   └── ...
│   ├── Libraries/
│   │   ├── Shared/
│   │   └── ...
│   └── Infrastructure/
│       ├── API Gateway/
│       └── ...
├── ConnectSoft.PlatformTemplate.InfrastructureModel/
│   ├── AzureInfrastructureStack.cs
│   ├── AwsInfrastructureStack.cs
│   ├── Pulumi.yaml
│   └── Pulumi.{env}.yaml
├── pipelines/
│   └── ...
└── docs/

Template Parameters

Parameter Type Required Default Description
PlatformName string Yes Platform Name of the platform
PlatformDescription string Yes Platform Platform description
ServiceCount int No 3 Number of initial services
IncludeApiGateway bool No true Include API Gateway
IncludeIdentity bool No true Include Identity Platform

Quick Start

Step 1: Create Platform

dotnet new connectsoft-platform \
  --name MyPlatform \
  --platform-description "My SaaS Platform" \
  --service-count 5

Step 2: Configure Services

Configure each service with domain-specific logic.

Step 3: Deploy Infrastructure

Deploy infrastructure using Pulumi:

# Navigate to infrastructure project
cd ConnectSoft.PlatformTemplate.InfrastructureModel

# Set Pulumi stack (dev, staging, prod)
pulumi stack select dev

# Configure stack settings (Azure example)
pulumi config set resourceGroupName my-resource-group
pulumi config set location "East US"
pulumi config set sqlDatabaseServerName my-sql-server
pulumi config set sqlServerAdminLogin admin
pulumi config set --secret sqlServerAdminPassword "your-password"
pulumi config set sqlDatabaseName my-database
pulumi config set redisCacheName my-redis
pulumi config set appServicePlanName my-app-plan
pulumi config set webAppName my-web-app
pulumi config set appInsightsName my-app-insights
pulumi config set appConfigName my-app-config
pulumi config set serviceBusNamespaceName my-servicebus
pulumi config set keyVaultName my-keyvault
pulumi config set tenantId "your-tenant-id"
pulumi config set cosmosDbAccountName my-cosmos
pulumi config set cosmosDbDatabaseName my-cosmos-db
pulumi config set cosmosDbContainerName my-container
pulumi config set storageAccountName mystorageaccount
pulumi config set environment dev

# Preview infrastructure changes
pulumi preview

# Deploy infrastructure
pulumi up

Infrastructure Model Features:

  • Multi-Cloud Support: Separate stack implementations for Azure (AzureInfrastructureStack.cs) and AWS (AwsInfrastructureStack.cs)
  • Type-Safe Infrastructure: C#-based infrastructure definitions with IntelliSense and compile-time checking
  • Stack Management: Environment-specific configurations via Pulumi.{env}.yaml files
  • Secret Management: Secure handling of sensitive values using Pulumi secrets
  • Resource Provisioning: Comprehensive Azure/AWS resources including:
    • Compute: App Services, Function Apps, Container Instances
    • Storage: Blob Storage, Cosmos DB, SQL Database
    • Messaging: Service Bus, Event Hubs, SQS/SNS
    • Security: Key Vault, Managed Identities, RBAC
    • Observability: Application Insights, Log Analytics, monitoring

Step 4: Deploy Services

Deploy services using CI/CD pipelines.

Architecture

Platform Structure

graph TB
    Gateway[API Gateway] --> Service1[Service 1]
    Gateway --> Service2[Service 2]
    Gateway --> Service3[Service 3]

    Service1 --> Identity[Identity Platform]
    Service2 --> Identity
    Service3 --> Identity

    Service1 --> Audit[Audit Platform]
    Service2 --> Audit
    Service3 --> Audit

    Service1 --> Config[Config Platform]
    Service2 --> Config
    Service3 --> Config

    style Gateway fill:#e3f2fd
    style Identity fill:#e8f5e9
    style Audit fill:#fff3e0
    style Config fill:#f3e5f5
Hold "Alt" / "Option" to enable pan & zoom

Design Principles

  • Microservices: Independent, scalable services
  • Multi-Tenancy: Tenant isolation and management
  • Event-Driven: Event-driven communication
  • Cloud-Native: Multi-cloud infrastructure (Azure and AWS) with Pulumi
  • Observability: Comprehensive monitoring with OpenTelemetry

Integration with AI Factory

The Platform Template is used by:

  • Platform Generator Agent: Generates platform projects
  • Solution Architect Agent: Designs platform architecture
  • Project Bootstrap: Creates new platform projects

Best Practices

Service Design

  • Design services around business capabilities
  • Maintain service independence
  • Use event-driven communication
  • Implement proper error handling

Tenant Management

  • Ensure tenant isolation
  • Implement tenant provisioning
  • Manage tenant configuration
  • Monitor tenant usage

Infrastructure

  • Use Pulumi for Infrastructure as Code: Leverage type-safe C# infrastructure definitions
  • Stack-Based Configuration: Use environment-specific Pulumi stacks (dev, staging, prod)
  • Secret Management: Use Pulumi secrets for sensitive configuration values
  • Multi-Cloud Support: Utilize separate stack implementations for Azure and AWS
  • Automate Deployments: Integrate Pulumi deployments into CI/CD pipelines
  • Monitor Infrastructure Health: Track resource provisioning and health status
  • Optimize Resource Usage: Review and optimize infrastructure costs regularly