Saya merasa sulit untuk menghindari duplikasi data atau database bersama bahkan untuk desain layanan microser yang paling sederhana, yang membuat saya berpikir saya kehilangan sesuatu. Inilah contoh dasar masalah yang saya hadapi. Dengan asumsi seseorang menggunakan aplikasi web untuk mengelola inventaris, mereka membutuhkan dua layanan; satu untuk inventaris yang mengelola item dan jumlah dalam stok dan layanan pengguna yang akan mengelola data pengguna. Jika kita menginginkan audit tentang siapa yang menyimpan basis data, kita bisa menambahkan ID pengguna ke basis data untuk layanan inventaris sebagai persediaan terakhir yang diukur berdasarkan nilai.
Dengan menggunakan aplikasi ini, kami mungkin ingin melihat semua item yang menipis, dan daftar siapa yang menyimpannya terakhir kali sehingga kami dapat meminta mereka untuk menyimpannya kembali. Menggunakan arsitektur yang dijelaskan di atas, permintaan akan dilakukan ke layanan inventaris untuk mengambil detail item dari semua item yang jumlahnya kurang dari 5. Ini akan mengembalikan daftar termasuk ID pengguna. Kemudian permintaan terpisah akan dibuat untuk layanan pengguna untuk mendapatkan nama pengguna dan detail kontak untuk daftar ID pengguna yang diperoleh dari layanan inventaris.
Ini tampaknya sangat tidak efisien dan tidak membutuhkan banyak layanan lagi sebelum kami membuat beberapa permintaan ke berbagai API layanan yang pada gilirannya membuat beberapa permintaan basis data. Alternatifnya adalah mereplikasi detail pengguna dalam data inventaris. Ketika seorang pengguna mengubah detail kontak mereka, kami perlu mereplikasi perubahan melalui semua layanan lainnya. Tetapi ini sepertinya tidak sesuai dengan ide konteks terbatas dari layanan-layanan microser. Kami juga dapat menggunakan satu basis data dan membagikannya di antara berbagai layanan, dan memiliki semua masalah pada basis data integrasi .
Apa cara yang benar / terbaik untuk mengimplementasikan ini?