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.*Templatematrix 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:
- Name aggregates and relationships consistently with saas-platform-ddd-entities.md.
- Own exactly one aggregate root per repo (see ArchitectureDocumentation / DDD / ADR-0001 and ConnectSoft.Documentation / SaaS Aggregate Root Assignment).
- 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.