Sekarang kita membahas arsitektur layanan mikro untuk masalah tersebut, karena skalabilitas yang dibutuhkan aplikasi dalam produksi. Juga untuk tujuan pengembangan, ini sangat penting, karena Task1 dan Task2 baru-baru ini menambahkan fitur/parameter baru dan skala yang berbeda dalam pengembangan.
Inilah tepatnya yang dilakukan oleh platform pemrosesan aliran. Saya merekomendasikan untuk menggunakan sistem seperti Apache Kafka atau Apache Pulsar untuk masalah ini.
Haruskah ada setidaknya dua layanan berbeda untuk Task1 dan Task2 dan mungkin bahkan satu untuk kontrol status iterasi/simulasi yang sebenarnya?
Task1 dan Task2 adalah apa yang disebut pemroses aliran , mereka membaca (berlangganan) satu topik , melakukan beberapa operasi/transformasi dan menulis (menerbitkan) ke topik lain .
Pertanyaan utama di sini adalah apa argumen untuk arsitektur layanan mikro karena kemungkinan hambatan komunikasi/jaringan? Satu-satunya cara untuk mempercepat ini adalah dengan menelurkan semua data yang diperlukan untuk tugas simulasi di memori dan menyimpannya di sana sepanjang waktu, untuk menghindari kemacetan jaringan?
Sekali lagi, ini persis masalah yang dilakukan oleh sistem seperti Apache Kafka atau Apache Pulsar. Untuk skala menulis dan membaca dalam sistem pemrosesan aliran, Anda dapat mempartisi topik your Anda .