Skip to content

SaaS platform template program — implementation mapping

This page ties the ConnectSoft template program (ConnectSoft.Saas.*Template, ConnectSoft.Blazor.Shell.Saas, ConnectSoft.Extensions.Saas.*, SaaS MFE templates) to the company SaaS framework documents. It is the implementation view; the vision remains in the broader HLD and framework overview.

Scope boundary

In scope (this program) Out of scope (other initiatives)
Tenants, Product catalog, Entitlements, Billing, Metering as template repositories and ServiceModel surfaces Audit & compliance platform template
ConnectSoft.Blazor.Shell.Saas and SaaS Blazor MFE templates Notifications & webhooks platform template
ConnectSoft.Extensions.Saas.* shared libraries (multi-repo) Configuration / feature-flag platform as a dedicated template program here

The framework overview and HLD still describe the wider SaaS factory (including AI, compliance, notifications, etc.). This program narrows delivery to the core product + monetization path so teams can ship templates and libraries with clear priorities.

Document map

Company document Role
SaaS Solution Platform (product portfolio) Portfolio hub: vision, BRD, architecture, solution, backlogs, API/integration/testing blueprints
Epics and program backlog Full EPIC-SAAS-* list and order; links to factory epics file and Azure import guide
Framework overview Vision, personas, portfolio
High-level design Logical architecture, cross-cutting concerns
DDD entities specification Canonical aggregates and boundaries—each ConnectSoft.Saas.<Context>Template must align
DDD Blueprint Strategic design and context relationships

ConnectSoft.Documentation (public starters)

Implementation details for template repos, shell, MFEs, and ServiceModel live in ConnectSoft.Documentation:

  • SaaS platform — solution plan — end-to-end DDD, repos, templates, published surfaces
  • SaaS bounded contexts and ConnectSoft.Saas.*Template matrix
  • ConnectSoft.Extensions.Saas.* libraries
  • SaaS extensions and templates — epics (backlog IDs for Azure DevOps)

Repository paths in that doc repo: Docs/starters/saas-platform-solution-plan.md, etc.

Alignment rule

Any new bounded-context template under this program must:

  1. Name aggregates and relationships consistently with saas-platform-ddd-entities.md.
  2. Own exactly one aggregate root per repo (see ArchitectureDocumentation / DDD / ADR-0001 and ConnectSoft.Documentation / SaaS Aggregate Root Assignment).
  3. Avoid duplicating Audit, Notifications, or Configuration domains—use integration (IDs, events) only.

Delivered template repositories (in-program)

Short name Template repository Aggregate root Primary event topic family
connectsoft-saas-tenants ConnectSoft.Saas.TenantsTemplate Tenant tenants.domain.v1.*
connectsoft-saas-productscatalog ConnectSoft.Saas.ProductsCatalogTemplate Product catalog.domain.v1.* + catalog.entitlements.v1.*
connectsoft-saas-entitlements ConnectSoft.Saas.EntitlementsTemplate Entitlement entitlements.v1.*
connectsoft-saas-billing ConnectSoft.Saas.BillingTemplate Subscription billing.subscriptions.v1.* + billing.invoices.v1.* + billing.payments.v1.*
connectsoft-saas-metering ConnectSoft.Saas.MeteringTemplate UsageMeter metering.usage.v1.* + metering.counters.v1.* + metering.quota.v1.*

All five repositories live under C:\Git\ConnectSoft\SAAS\ and extend ConnectSoft.BaseTemplate via a base-template/ git submodule.

Tech stack standardized across the program:

  • Messaging: MassTransit with built-in outbox (no custom outbox tables).
  • Actors / runtime coordination: Orleans (tenant-scoped grain keys).
  • ServiceModel surfaces: REST + gRPC (SignalR / GraphQL / CoreWCF / ServiceFabric / AzureFunction are off).
  • Persistence: NHibernate only, multi-dialect (SQL Server / PostgreSQL / MySQL / Oracle / SQLite). No MongoDB in SaaS repos.
  • Scheduler / cache / telemetry: Hangfire, Redis, OpenTelemetry + Serilog.
  • Per repo: InfrastructureModel (Bicep/Terraform/Pulumi), DiagramAsCodeModel (C4/PlantUML/Mermaid), full mkdocs site, DockerCompose + Kubernetes + Helm + observability stack (OTel Collector, Prometheus, Grafana, Loki, Tempo/Jaeger).

See SaaS Cross-repo Published Language for the full topic plan and idempotency rules, and SaaS Factory Generation Wiring for how the microservice-generator-agent consumes <Context>.json descriptors.