Saya sedang melakukan proyek penelitian di mana saya meneliti opsi untuk menangani perubahan dalam arsitektur layanan-mikro yang didorong oleh peristiwa.
Jadi, katakanlah kita punya aplikasi di mana kita mendapat empat layanan berbeda. Setiap layanan ini memiliki database sendiri untuk menyimpan data lokal.
Dalam pengaturan ini, keempat layanan berkomunikasi satu sama lain menggunakan Bus Acara. Jadi ketika sesuatu terjadi dalam suatu layanan, ia menerbitkan suatu peristiwa. Semua layanan lain yang tertarik pada acara itu akan memprosesnya dengan cara mereka sendiri.
Dalam hal ini berbagai layanan dalam arsitektur perlu memiliki "kontrak" tentang konten acara ini (atribut dll.). Jadi layanan memiliki "dependensi longgar ditambah" untuk peristiwa ini
Pertanyaan saya adalah: Bagaimana kita bisa menangani perubahan dalam acara ini?
Jadi, katakanlah layanan A mendaftarkan pengguna baru dalam aplikasi. Jadi ia mengirimkan acara "UserRegistered". Layanan B mengambil peristiwa itu dan memprosesnya. Tetapi beberapa pengembang di tim layanan C memutuskan bahwa mereka juga memerlukan jenis kelamin pengguna terdaftar. Jadi acara tersebut diubah dan atribut gender ditambahkan ke acara "UserRegistered".
Bagaimana kami dapat memastikan bahwa Layanan B masih dapat mengambil peristiwa yang sama dengan atribut tambahan tanpa menggunakan kembali?
Dan adakah cara lain untuk mendekati masalah ini kemudian mengversi peristiwa ini?