Kodeloka
  1. Kodeloka
  2. Kelas Microservices
  3. Materi

Data Pattern ยท Modul 5 dari 24

Belajar Microservices - Database per Service

Pola Database per Service di mana setiap microservice memiliki DB tersendiri (Polyglot Persistence). Mencegah tight coupling di tingkat tabel RDBMS.

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 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 orders tanpa 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.