DBRaven

Multi-Tenant SaaS Platform

Multi-Tenant SaaSmoderate complexity

Deterministic topology derived from YAML knowledge entities. Nodes represent workloads, datastores, patterns, and risk components. Edges show typed relationships with propagation direction.

11

Components

7

Connections

4

Failure Modes

3

Propagation Paths

Max exposure: high· 2 high-risk nodes in this topology
Topology Graph11 nodes · 7 edges
2 high-risk nodesClick a failure mode below to trace propagation
Workload
Datastore
Cache
Event stream
Pattern
Risk node
Risk path

Failure Propagation Trace

Topology Notes

  • ·PgBouncer sits between all application instances and the shared PostgreSQL primary. Pool mode must be transaction. All application database connections carry a tenant_id context variable (set_config or application_name) for RLS policy evaluation.
  • ·PostgreSQL row-level security policies are enforced at the database layer. All application queries run as a limited-privilege role that activates RLS. The superuser role must never be used from application code in production.
  • ·Redis cache keys are tenant-namespaced: the canonical key format is {tenant_id}:{resource_type}:{resource_id}. Global (non-tenant) keys use a reserved namespace prefix (e.g., global:{resource}). This namespacing must be enforced by the cache client abstraction, not left to caller convention.
  • ·Connection quota enforcement is the responsibility of the application layer, not PgBouncer. Implement a per-tenant connection semaphore or rate limiter in the application before saturation events occur, not after.
  • ·The shared PostgreSQL schema includes a tenants table with operational metadata (tier, created_at, status). The RLS policies reference this table to enforce data boundaries. Schema changes to this table require careful migration planning.
Topology: Multi-Tenant SaaS Platform: DBRaven