Kodeloka
  1. Kodeloka
  2. Kelas Microservices
  3. Materi

Data Pattern · Modul 6 dari 24

Belajar Microservices - Shared Database

Antipattern dan kriteria terbatas penggunaan Shared Database dalam Microservices, bahaya perubahan skema tabel bersama, dan tantangan locking.

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 users dan 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.