Multi-tenant booking & approvals platform. Monorepo with two deployables plus a worker, backed by one PostgreSQL primary. Tier: small (<1k concurrent) — no Redis/replicas; the SSE channel and outbox worker are correctness/availability requirements, not scaling ones.
POST /v1/bookings → Throttler → JwtAuthGuard → RolesGuard → TenantGuard (binds org_id into CLS).EXCLUDE constraint atomically rejects overlaps → mapped to 409 booking_conflict.confirmed or pending_approval (+ approval steps).outbox (dual-write solved).booking.created; the audit interceptor records the change.ScopedRepository; cross-tenant reads return NOT_FOUND, never leak existence.