Schema-level multi-tenancy over row-level
Context: We needed strong data isolation between organizations without scattering tenant_id filters across every query.
Decision: Use separate PostgreSQL schemas per tenant. This guarantees isolation at the database layer and keeps application queries clean, at the cost of more involved migrations.