1. Konsep Database per Service
Dalam pola Database per Service, setiap microservice memiliki basis data privat tersendiri. Tidak ada service eksternal yang diizinkan mengakses atau melakukan SQL query langsung ke tabel database service lain!
๐ก Enkapsulasi Data Penuh:
Jika
Jika
Order Service membutuhkan informasi nama pelanggan dari User Service, Order Service Wajib memanggil API HTTP/gRPC resmi User Service (atau mendengarkan Event domain), bukan melakukan SQL JOIN SELECT * FROM users JOIN orders!
2. Keuntungan Database per Service
- Kemudahan Perubahan Skema: Developer bebas mengubah struktur tabel internal
orderstanpa perlu khawatir merusak aplikasi lain. - Polyglot Persistence: Bebas menggunakan jenis DB terbaik untuk tiap domain:
User Service-> PostgreSQL (Relasional).Catalog Service-> MongoDB / Elasticsearch (Dokumen & Search).Session & Leaderboard Service-> Redis (In-Memory).
- Isolasi Beban I/O: Query berat di satu database tidak akan membuat crash database service lainnya.