Talks AWS re:Invent 2025 - Integration patterns for multi-tenant systems (SAS312) VIDEO
AWS re:Invent 2025 - Integration patterns for multi-tenant systems (SAS312) Integration Patterns for Multi-Tenant Systems
Overview
Presentation on integration patterns and architecture for building multi-tenant SaaS applications
Covers key concepts, design decisions, and trade-offs when integrating services in a distributed, multi-tenant environment
Presented by Alex and Durk, senior solutions architects at AWS
Challenges of Multi-Tenant Integration
Distributed architecture introduces complexity around service interconnections and data flow
Multi-tenancy adds additional requirements for tenant isolation and resource management
Architects must balance tradeoffs between simplicity, scalability, resilience, and cost
Synchronous vs. Asynchronous Integration
Synchronous request-response can provide poor user experience due to tight coupling
Asynchronous request-response decouples clients and backend, allowing better scalability and resilience
Provides status updates and notifications to improve user experience
Leveraging JWTs for Multi-Tenant Identity
JSON Web Tokens (JWTs) can be used to transport tenant identity and metadata across services
Allows downstream services to access tenant context without additional lookups
Can also include technical metadata like rate limiting quotas to enforce tenant-specific policies
Message Queues and Decoupling
Message queues provide decoupling between producers and consumers of data
Can buffer messages and flatten peak loads to protect downstream services
Introduces challenges around "noisy neighbor" tenants monopolizing queue resources
Patterns for Multi-Tenant Queue Management
Single multi-tenant queue: Simple but risks noisy neighbors impacting all tenants
Dedicated single-tenant queues: Isolates tenants but high operational overhead
Cell sharding: Share queues between small groups of tenants to reduce blast radius
Shuffle sharding: Distribute each tenant's messages across multiple queues
Integrating with External Services
External services like payment processors often require synchronous integrations
Use a proxy service to decouple the synchronous call from the main application flow
Leverage dead-letter queues to handle failures and enable asynchronous retries
Scatter-Gather Integration Pattern
Distribute a request to multiple downstream services and aggregate the responses
Uses publish-subscribe messaging to fan-out the request and a response queue to collect results
Requires correlation IDs and return addresses to link responses back to original requests
Storing Multi-Tenant State in DynamoDB
Single-table design patterns for storing multi-tenant data in a scalable NoSQL store
Tradeoffs between tenant isolation (security) and partition key hot spots (performance)
Leverage IAM policies to control tenant-level access to data
Key Takeaways
Integration is a critical part of modern, distributed cloud architectures - not an afterthought
Leverage asynchronous, event-driven patterns to decouple services and improve scalability
Use JWTs to transport tenant context and enforce policies across the system
Carefully design multi-tenant queue management to avoid "noisy neighbor" issues
Integrate with external services through proxies and dead-letter queues
Apply scatter-gather patterns and single-table DynamoDB designs to handle complex state management
Additional Resources
Refer to other AWS re:Invent talks on building SaaS applications on AWS
Explore open-source tools and frameworks for distributed integration architectures
Your Digital Journey deserves a great story. Build one with us.