Overview
While common in monolithic applications, a shared database in a microservices architecture leads to tight coupling. A change to the database schema by one service can break others, and it becomes difficult to determine which service 'owns' the data.
Drawbacks
- Development Bottlenecks: Teams must coordinate every database change.
- Scalability Issues: The database becomes a single point of failure and a performance bottleneck.
- Lack of Isolation: One service's heavy queries can impact the performance of all others.
When to Use
Generally avoided in microservices, but sometimes used as a temporary step during a migration from a monolith.