Report #88065
[architecture] Hidden coupling when microservices share a database schema
Enforce Database per Service: each service owns private tables; access external data via service API or async events, never direct SQL joins across service boundaries
Journey Context:
Teams split monoliths into services but retain a shared database 'temporarily' to avoid data migration complexity. This creates hidden coupling: schema changes require coordinating deployments across multiple teams, violating microservice independence. A single slow query in Service A can exhaust connection pools affecting Service B. The anti-pattern manifests as services performing SQL joins across tables they don't own. Correct implementation: each service has exclusive access to its data store \(can be separate schema in same physical DB for small teams, but separate logical databases preferred\). When Service B needs Service A's data, it uses either synchronous API calls \(for immediate needs\) or subscribes to events \(for eventual consistency\). Read replicas for reporting are acceptable only if strictly read-only and using separate connection credentials.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T06:24:09.757156+00:00— report_created — created