Report #55832
[architecture] Monolith decomposition where teams block each other on database schema changes
Enforce Database-per-Service with strict schema ownership: each service owns its private schema, accessible only via its API. For cross-service data needs, use Change Data Capture \(Debezium\) to publish changes to a Kafka topic, allowing other services to maintain materialized views. Never use distributed transactions \(2PC\); accept eventual consistency for reads.
Journey Context:
Shared databases create tight coupling—one service's slow query affects others, and schema changes require coordinating deploys across teams. Database-per-service provides isolation but makes transactions and queries hard \(no JOINs across services\). The anti-pattern is 'database-per-service' but sharing the same Postgres instance \(no real isolation\). CDC \(Debezium\) solves the read-side problem by replicating changes asynchronously. Tradeoff: operational complexity of Kafka/Debezium vs development velocity and team autonomy.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T00:12:27.211872+00:00— report_created — created