1. Mengapa Shared Database Dianggap Anti-Pattern?
Meskipun Shared Database terlihat menarik pada tahap awal migrasi (karena tidak perlu mengubah kode transaksi SQL lama), pendekatan ini menciptakan keterikatan yang sangat ketat (Tight Coupling) di tingkat database.
⚠️ Risiko Utama Shared Database:
- Loss of Encapsulation: Tim pengembang Service A bisa saja merubah kolom tabel
usersdan membuat Service B crash saat runtime tanpa terdeteksi di kompilasi. - Single Point of Failure: Jika database terpusat mengalami overload CPU atau mati, SELURUH microservices akan crash bersamaan.
- Resource Contention & Locking: Transaction lock tabel di Service A akan memblokir Read query di Service B.
2. Kapan Shared Database Ditoleransi?
Shared Database hanya ditoleransi sementara saat Migrasi Bertahap (Strangler Fig Pattern) dari Monolith ke Microservices sebelum data di-refactor penuh ke DB terpisah.