Saya telah membaca tentang sumber acara akhir-akhir ini dan benar-benar menyukai ide di baliknya tetapi saya terjebak dengan masalah berikut.
Katakanlah Anda memiliki N proses bersamaan yang menerima perintah (misalnya server web), menghasilkan peristiwa sebagai hasilnya dan menyimpannya di toko terpusat. Mari kita juga berasumsi bahwa semua keadaan aplikasi sementara dipertahankan dalam memori proses individu dengan secara berurutan menerapkan peristiwa dari toko.
Sekarang, katakanlah kita memiliki aturan bisnis berikut: setiap pengguna yang berbeda harus memiliki nama pengguna yang unik.
Jika dua proses menerima perintah pendaftaran pengguna untuk nama pengguna X yang sama, mereka berdua memeriksa bahwa X tidak ada dalam daftar nama pengguna mereka, aturan memvalidasi untuk kedua proses dan mereka berdua menyimpan acara "pengguna baru dengan nama pengguna X" di toko .
Kami sekarang telah memasuki negara global yang tidak konsisten karena aturan bisnis dilanggar (ada dua pengguna berbeda dengan nama pengguna yang sama).
Dalam N server tradisional <-> 1 sistem gaya RDBMS, database digunakan sebagai titik sentral sinkronisasi yang membantu mencegah ketidakkonsistenan tersebut.
Pertanyaan saya adalah: bagaimana sistem bersumber peristiwa biasanya mendekati masalah ini? Apakah mereka hanya memproses setiap perintah secara berurutan (misalnya membatasi jumlah proses yang dapat menulis ke toko ke 1)?