Skip to content

SaaS Solution Platform — Solution Architecture

Purpose

This document describes the solution-level architecture: how clients, edge, bounded-context services, and foundation platforms connect at runtime. It complements the architecture blueprint with deployment-oriented structure.

Runtime Topology

flowchart TB
  subgraph clients [Clients]
    Browser[Browser]
    SPA[Blazor WASM MFE]
  end
  subgraph edge [Edge]
    GW[API_Gateway]
    Shell[Shell_Saas]
  end
  subgraph services [Bounded context services]
    S1[TenantsSvc]
    S2[CatalogSvc]
    S3[EntitlementsSvc]
    S4[BillingSvc]
    S5[MeteringSvc]
  end
  subgraph foundation [Foundation]
    Auth[Auth_Server]
    IdP[Identity_Backend]
  end
  Browser --> Shell
  Shell --> GW
  SPA --> GW
  GW --> Auth
  GW --> S1
  GW --> S2
  GW --> S3
  GW --> S4
  GW --> S5
  Shell --> Auth
Hold "Alt" / "Option" to enable pan & zoom

Composition with Platform Template

Platform Template (ConnectSoft factory) composes multi-service solutions: gateway, identity stack, documentation site, and generated microservices. SaaS bounded-context services are additional microservice instances produced from ConnectSoft.Saas.*Template—not a replacement for the Platform Template.

Factory reference: ConnectSoft DocumentationDocs/starters/templates-dependencies.md, saas-platform-solution-plan.md.

Contract Flow

  1. User authenticates via Authorization Server (OIDC).
  2. Shell loads MFE manifests; MFEs call BFF or gateway routes.
  3. Gateway validates tokens, routes to ServiceModel-backed APIs.
  4. Services enforce tenant/edition policy; emit integration events for cross-context workflows.

Data Ownership

  • Each bounded context owns its database (or schema) — no shared transactional store across contexts.
  • Cross-context references use IDs and events only (see integration patterns).

Physical View (Typical)

  • Kubernetes or Azure Kubernetes Service — services as pods; gateway and shell as ingress-exposed workloads.
  • Secrets — Key Vault or equivalent; no secrets in templates.
  • Messaging — Optional event bus for domain/integration events (MassTransit, etc.) per service template.