Platform
One codebase, enterprise-grade isolation
The Prabhix platform is a modular monolith — shared infrastructure for every product and customer organization, designed to scale a single org to 100,000 users.
Architecture
System overview
Client layer
- Marketing Site (Next.js SSR)
- Customer App (React SPA)
- Mobile Apps (offline-first)
Prabhix API
- Spring Boot modular monolith
- auth · org · mail · billing · notify · audit · files · search
Data layer
- PostgreSQL 16 — tenant-scoped · RLS
- Redis 7 — cache · pub/sub · rate limits
- S3-compatible — attachments · exports
Tenant isolation
- JWT · Filter · Hibernate + Postgres RLS
Multi-tenancy
Isolated workspaces, shared infrastructure
Shared-schema multi-tenancy with three redundant isolation layers — JWT claims, request-scoped tenant filters, and Hibernate query filters — plus Postgres row-level security on high-risk tables.
Org A
- Teams & RBAC
- Mailboxes
- Billing
- Product data
organization_id scoped
Org B
- Teams & RBAC
- Mailboxes
- Billing
- Product data
organization_id scoped
Org C
- Teams & RBAC
- Mailboxes
- Billing
- Product data
organization_id scoped
Modules
Platform capabilities
Multi-tenant workspaces
Each customer is an organization with isolated data boundaries. Members, teams, roles, and invites — scoped by organization_id at every layer.
Unified email & helpdesk
Shared inboxes with IMAP ingestion, MIME parsing, conversation threading, agent assignment, SLA tracking, and canned replies.
Razorpay billing
Plans, subscriptions, seat-based proration, GST invoicing, and webhook-driven entitlements. Browser callbacks never mutate state alone.
RBAC
Fine-grained permissions (MAIL_READ, BILLING_MANAGE, ORG_MEMBER_INVITE) bundled into system and custom roles with team scoping.
Audit logging
Append-only audit trail for sensitive operations. Partitioned storage with S3 archival after 90 days.
Scale to 100k users
Cursor pagination, Redis read-through caches, outbox workers with SKIP LOCKED, and monthly table partitioning on hot paths.
Scale
Designed for 100,000 users in one organization
| Pressure point | Mitigation |
|---|---|
| Connection pool exhaustion | HikariCP per instance + PgBouncer in transaction mode |
| Hot mail tables | Monthly range partitioning + covering indexes |
| Deep pagination | Cursor (keyset) pagination — OFFSET banned on hot paths |
| Permission checks | Precomputed into JWT; Redis deny-list for revocation |
| Background work | Outbox + SELECT FOR UPDATE SKIP LOCKED workers |
| Real-time updates | SSE per org channel, fanned out via Redis pub/sub |
See the platform in action
Book a walkthrough of multi-tenant workspaces, shared inbox, and billing — tailored to your use case.