Skip to content

Serverless SaaS

A multi-tenant SaaS app on AWS serverless, with pooled and silo tenants, automated onboarding, tenant-scoped data access and a pipeline that rolls code out to every tenant stack.

The SaaS app dashboard for the acme tenant, showing product and order counts and the tenant context from the token and the authorizer.

Control plane

Built on the SaaS Builder Toolkit: tenant registry, tenant config, system admin users and an EventBridge bus that drives onboarding.

Pooled and silo tenants

Basic, Standard and Premium tenants share one stack. Platinum tenants get their own copy of the whole application stack, deployed automatically at sign-up.

Isolation enforced by IAM

A Lambda authorizer vends STS credentials restricted to the caller’s DynamoDB partition keys, so a bug in service code still can’t read another tenant’s data.

Two React apps

An admin console for the SaaS provider and a tenant-facing app for products, orders and user management. Both are hosted on S3 and CloudFront.

Tiers with usage plans

Each tier maps to an API Gateway usage plan with its own throttling and daily quota. The authorizer picks the key, so clients never handle API keys.

Tenant pipeline

Upload new code and CodePipeline plus Step Functions update every tenant stack, wave by wave, stopping if a wave fails.

Architecture overview: web apps, control plane and application plane

See Architecture for a walkthrough, and click the diagram to open it full size.