Multi-Tenant Education & Commerce Platform
One codebase, many organisations, millions of users
- Problem
- A single platform had to serve many independent organisations — schools, districts and storefronts — each expecting its own data, branding and rules. Tenancy handled in application code is one forgotten WHERE clause away from a data leak, and a shared request path means one busy tenant degrades everyone else.
- Solution
- Multi-tenancy pushed into the schema rather than defended in the service layer, with PostgreSQL and TypeORM enforcing isolation, and an event-driven backbone that keeps slow work off the request path. Kafka carries high-throughput streams, RabbitMQ carries work that must not be lost, and Redis handles caching and pub/sub fan-out.
- Angular
- NestJS
- TypeScript
- PostgreSQL
- TypeORM
- Kafka
- RabbitMQ
- Redis
Impact
- users across tenant organisations
- Millionsusers across tenant organisations
- production stability
- 99.8%production stability
- data isolation and customisation
- Per-tenantdata isolation and customisation
Read the case study