2. Multi-Tenant SaaS Backend Architecture
Architect an enterprise multi-tenant API featuring organization tenant isolation, RBAC (Role-Based Access Control), Redis rate limiting, Stripe subscription webhook handling, and Docker deployment.
Node.js
Express
PostgreSQL
Prisma
Redis
Docker
Stripe API
Core Features & Requirements
Multi-tenant data isolation per Organization
RBAC permissions (Owner, Admin, Member, Guest)
Redis sliding window rate limiting per API key
Stripe Webhook processing for subscription tiers
Multi-stage Dockerfile and Docker Compose setup
Recommended Production Directory Structure
saas-backend/ ├── docker/ │ └── docker-compose.yml ├── src/ │ ├── middleware/ │ │ ├── tenant.middleware.ts │ │ ├── rbac.middleware.ts │ │ └── rate-limiter.ts │ ├── services/ │ │ ├── redis.service.ts │ │ └── stripe.service.ts │ └── server.ts └── Dockerfile
Step-by-Step Implementation Guide
1Setup Tenant Isolation Middleware
Extract tenant ID from request headers or subdomain and scope all Prisma DB queries to the active tenant.
2Implement Distributed Redis Rate Limiting
Use Redis sliding window counters to restrict free tier organizations to 100 requests per minute.
