Skip to main content

AWS for Software and Technology

The building blocks of multi-tenant SaaS architecture for ISVs

Overview

Imagine you are three years into a successful multi-tenant deployment. A new enterprise prospect is ready to sign. However, the prospect’s compliance team comes back requesting dedicated resources, tenant-level encryption, and a private audit log. Your engineering team can do it, but they estimate it will take a six-month retrofit to meet the requirements.

This kind of costly retrofit is avoidable, but only if your architecture is designed with isolation and flexibility built in from the start. Designing a multi-tenant architecture means building in order—each block becomes the foundation for the next. 

A well-architected multi-tenant SaaS system typically includes four building blocks:

  • Tenant identity
  • Data isolation
  • Compute and runtime
  • Operations 

When ISVs design their SaaS architecture block by block, aligned with frameworks such as the AWS Well-Architected SaaS Lens, tenant isolation becomes an inherent property of the system. Your identity decisions constrain your choices for isolation. Data choices constrain your compute and runtime architecture, and compute governs how your operations and observability work. 

If you design these blocks out of order, you’ll likely need a redesign when a big prospect comes along. Enterprise buyers are increasingly evaluating security and compliance before even asking for a demo. You need to provide proof that your SaaS platform is mature, scalable, and operationally solid from day one. With this proof in place, you’ll access faster enterprise procurement cycles and stronger marketplace and co-sell readiness.

Abstract artwork featuring yellow spheres on a curved, reflective rainbow-colored structure against a gradient blue and pink background.

1. Tenant identity policies create the foundation for scalable tenant isolation

Tenant identity is the foundation of your multi-tenant software architecture. Every downstream isolation, compliance, and operational decision depends on how you define and enforce tenant identity. Getting this layer right early helps ISV engineering leaders avoid costly enterprise retrofits later in the sales cycle. Early-stage ISV builders often treat tenant IDs as simple database fields. But doing so means tenant isolation exists only in application logic, which creates risk of cross-tenant data access. 

Instead, define tenant context from the outset so you can include it in request tokens and attach specific attributes to it, including: 

  • Pricing tier
  • Deployment region
  • Entitlements
  • Compliance requirements 

Tenant identity should be included in the token, where it can propagate natively among microservices and be enforced reliably at the identity and access management (IAM) policy layer.

Embedding that tenant context into authentication and authorization flows early reduces the likelihood of IAM retrofits later, especially when enterprise customers introduce stricter security or audit requirements.

How to lay the foundations of tenant identity on AWS

Accelerate your tenant isolation strategy by configuring tenant-aware user pools for Amazon Cognito, reducing identity implementation from weeks to days. For a detailed look at how this works, you can explore the AWS guidelines on SaaS identity with Amazon Cognito.

Once you sign the tenant identity into the token, you can use AWS Security Token Service (AWS STS) AssumeRole to inject session tags on a per-request basis using aws:RequestTag. This unlocks the ability to use AWS IAM attribute-based access control (ABAC), assuming the IAM policy includes sts:TagSession permission on the role. With ABAC and session tags in place, your tenant ID acts as a principal tag that provides strict, resource-level authorization across your environment.

This lets you enforce tenant authorization at the infrastructure layer instead of relying on application code. For distributed systems, this creates consistent authorization boundaries across services and resources.

Builder checkpoint: Tenant identity decisions

Ask your team:

  • Where does our tenant ID currently live: in tokens, a header, or simply as a database column?
  • If a developer forgets to add the tenant filter in a newly created endpoint, does anything prevent cross-tenant data access?
  • Does our IAM policy strictly enforce tenant boundaries, or are we relying entirely on application code? 

2: Match data isolation policies to customer and pricing requirements

On top of tenant identity is data. Data isolation is the one block your customers will test directly. A flaw in the compute or operations blocks might fail quietly, but a data failure is a reportable event. Strong isolation boundaries can also shorten enterprise security reviews, reducing procurement friction for regulated customers.

To build data isolation, architects generally use one of three models to serve multiple customers, each with different operational and infrastructure costs and security profiles:

  • Silo (infrastructure-per-tenant): This approach creates dedicated infrastructure boundaries for each tenant, often including separate databases per tenant. It provides the strongest isolation profile while also introducing the highest operational overhead.
  • Pool (shared multi-tenant database schema, row-level filtering): This is the lowest-cost model and is common among growth-stage ISVs that prioritize rapid delivery and operational simplicity. However, a multi-tenant application with pooled isolation increases reliance on consistent authorization and query enforcement.
  • Bridge (schema-per-tenant in a shared DB): This model separates tenants logically within a shared database. It provides stronger isolation than a pooled model without the operational overhead of fully dedicated infrastructure.

For ISVs scaling into enterprise, bridge isolation provides a practical balance between enterprise requirements and operational efficiency.

Rather than choosing one model universally, the goal is to design an isolation strategy that evolves with customer requirements.

Building secure data boundaries on AWS

AWS services support multi-tenant isolation patterns across storage layers:

  • Amazon RDS: An SQL database service supporting multiple engines with both schema-per-tenant (bridge) and database-per-tenant (silo) isolation patterns.
  • Amazon DynamoDB: A NoSQL key-value and document store where you can secure pooled data by using the tenant ID in the partition key and enforcing fine-grained access control through IAM conditions like dynamodb:LeadingKeys.
  • Amazon S3: A data store where you can use a prefix-per-tenant structure enforced by IAM policy conditions. Use AWS Key Management Service (AWS KMS) to manage tenant-level encryption with dedicated keys for your highest-paying tiers.

Designing these controls early will reduce future compliance retrofits and simplify enterprise onboarding.

Builder checkpoint: Data isolation decisions

Ask your team the following:

  • Could a misconfigured query return data from multiple tenants?
  • Are we strictly enforcing tenant isolation through IAM or do we use application code?
  • Which specific tenants or tiers need dedicated encryption keys?

For SaaS architects and ISV engineering leaders preparing for enterprise procurement or AWS Marketplace expansion, the AWS Well-Architected SaaS Lens can help identify tenant isolation gaps before they become compliance blockers. 

3: Align compute isolation with workload and customer expectations

Compute isolation defines how tenant workloads share, or deliberately do not share, CPU, memory, and network resources. Compute and runtime shape how workloads interact and how failures spread.

This layer is where SaaS architects address the “noisy neighbor” problem. In heavily shared environments, one tenant’s workload can degrade performance for others if compute boundaries aren’t carefully designed.

Most multi-tenant SaaS platforms begin with pooled compute tenancy models to reduce infrastructure cost and operational complexity. However, customers paying for stronger data isolation often expect stronger workload guarantees as well. Predictable workload isolation helps ISV builders support premium service tiers without overprovisioning infrastructure globally.

Your compute isolation strategy should generally align with your data isolation strategy.

Building compute isolation walls with AWS

AWS services support multiple compute isolation patterns depending on workload and tenancy requirements:

  • Amazon EKS: For containerized workloads, Amazon Elastic Kubernetes Service allows you to map compute directly to your tiering strategy: namespace-per-tenant for a pooled mode, node-group-per-tenant for a bridge model, and full cluster-per-tenant for a strict silo.
  • AWS Fargate: Create dedicated task-level compute isolation in its own VM, without needing to perform underlying node management.
  • AWS Lambda: Configure reserved concurrency per tenant function, which effectively caps the blast radius of any single runaway tenant.
  • Amazon API Gateway: Configure usage plans for per-tenant throttling at the API layer.

For ISV engineering leaders scaling into larger enterprise environments, stronger workload segmentation can improve operational resilience and customer confidence without requiring fully siloed infrastructure everywhere.

You can explore tiering patterns more deeply in the EKS SaaS reference architecture documentation.

Builder checkpoint: Compute isolation decisions

Ask your team:

  • If our largest tenant doubles their workload overnight, whose P99 latency is affected?
  • Do enterprise and SMB customers currently share the same compute resources?
  • What is the actual blast radius of a runaway tenant workload in our system: one pod, one node, or an entire cluster?

4: Make tenant-aware operations part of your SaaS architecture with observability

Operations and observability allow you to verify that your SaaS architecture is working as expected. This is often the layer ISV engineering leaders mature only after operational complexity or production incidents expose visibility gaps.

    Without tenant-aware telemetry, isolated customer issues can appear as platform-wide outages, making incidents harder to triage and resolve. If you can't scope an issue to a single tenant, you can't triage it. Faster tenant-level troubleshooting translates to increased operational confidence and customer retention.

      Tenant context needs to propagate consistently across logs, metrics, traces, audit records, and billing events. This improves operational visibility and helps engineering teams isolate tenant-specific issues more quickly as systems scale.

      Building tenant-aware operations on AWS

      AWS provides the tooling necessary to keep your operations tenant aware:

      • Amazon CloudWatch: Inject a specific tenant dimension into your CloudWatch metrics so you can use CloudWatch Logs Insights to filter and query logs by a specific tenant ID.
      • Amazon CloudWatch application observability: Use trace annotations to track requests as they move through your microservices, which allows you to conduct per-tenant latency analysis.
      • AWS AppConfig: Use AppConfig to decouple your code deployments from your feature releases using feature flags. This allows you to dynamically target specific tenant cohorts (such as an internal beta group or a free tier) for staged rollouts and toggle off a bad release for a single tenant without altering the underlying infrastructure.

        These AWS controls help SaaS architects improve operational consistency without maintaining fully separate operational stacks per tenant.

        Builder checkpoint: Operational visibility decisions

        Ask your team:

        • Can we pull the P99 latency for a specific tenant from a specific date in under five minutes?
        • Does our current billing pipeline reliably meter consumption on a strict per-tenant basis?
        • If we deployed a bug that affected only a single tenant, could we roll back the release for that tenant alone?

        Multi-tenant SaaS blocks stacked in the right order

        Designing a scalable multi-tenancy SaaS architecture comes down to where tenant boundaries are enforced: either primarily in application code or consistently across identity, infrastructure, compute, and operations. Your identity decisions constrain your data strategy. Your data strategy influences your compute architecture, and your compute choices directly shape your daily operations and observability.

        Architectures that embed tenant context consistently across these layers are generally easier to scale as customer requirements evolve. Strong architectural foundations reduce future rework while making it easier to support larger enterprise customers over time. To evaluate how your architecture aligns with these patterns, use the AWS Well-Architected SaaS Lens as an objective review mechanism before pursuing larger enterprise procurement opportunities.A Well-Architected SaaS Lens review can help you identify where your blocks stand today so you can build with confidence, reach customers faster, and grow your business through AWS Marketplace.

        Explore the AWS ISV Accelerate program to put that readiness to work as you scale into larger enterprise markets.
         

        Did you find what you were looking for today?

        Let us know so we can improve the quality of the content on our pages