Saya sedang membangun aplikasi baru dan sedang membaca tentang arsitektur layanan mikro. Arsitekturnya sendiri sangat masuk akal dari sudut pandang pengembangan, penyebaran, dan manajemen siklus hidup. Namun satu masalah yang muncul adalah tentang bagaimana menangani data master.
Misalnya, saya memiliki 2 aplikasi - katakan aplikasi Penjualan dan aplikasi Tiket. Anggap kedua aplikasi ini dibangun sebagai layanan mikro sendiri. Namun kedua aplikasi ini, ketika digunakan (dengan asumsi bahwa mereka dikerahkan secara terpisah mengatakan Penjualan menggunakan MongoDB dan Tiket menggunakan MariaDB), perlu memiliki akses ke instance data master yang sama misalnya Akun, Produk. Ini berarti bahwa akan ada aplikasi pemilik untuk entitas data master yang diberikan (misalnya untuk Akun mungkin adalah aplikasi Penjualan) dan pihak yang berkepentingan (misalnya aplikasi Tiket perlu memiliki informasi tentang Akun).
Ada beberapa cara untuk mencapai hal ini: - Replikasi data dari master ke pihak yang berkepentingan - Pembacaan sinkron dari pihak yang berkepentingan ke master (ketergantungan sinkronisasi tidak direkomendasikan oleh paradigma arsitektur layanan mikro) - Repositori terpusat sendiri
Bahkan di dalam Akun, ada bagian inti yang umum untuk Penjualan dan Tiket (mis. Nama akun, alamat, dll.). Namun beberapa aspek dari Akun HANYA mungkin relevan untuk Penjualan dan yang lainnya HANYA relevan untuk Tiket.
Adakah pemikiran / praktik terbaik / pendapat mengenai salah satu opsi yang disebutkan di atas?