Dua pola integrasi perusahaan adalah pesan perintah dan pesan acara . Saya sedang mengerjakan suatu sistem di mana kami menggunakan pesan tidak hanya untuk integrasi dengan sistem lain, tetapi untuk komunikasi internal antar layanan. Ini seharusnya menjadi sistem yang akhirnya konsisten , dan layanan seharusnya saling mengabaikan (dengan pengecualian untuk beberapa layanan tujuan khusus). Karena itu, kami mencoba menghindari hal-hal yang terasa seperti panggilan prosedur jarak jauh (RPC atau RPI). Kami memiliki sistem middleware bus dan berorientasi pesan, dan semua pesan disiarkan.
Kita cenderung menyebut pesan kita sebagai peristiwa, yaitu, sebagai frase di masa lalu yang sempurna, misalnya PurchaseOrderShipped
. Namun, acara sering ditambahkan hanya ketika beberapa layanan lain perlu tahu tentang mereka, dan pada awalnya, seringkali hanya satu layanan yang peduli. Selain itu, kadang-kadang layanan itu memancarkan suatu peristiwa, yang didengarkan oleh layanan pertama. Jadi jika saya membuat diagram interaksi, itu akan terlihat lebih seperti diagram untuk pesan perintah di tautan di atas (atau bahkan diagram RPC) daripada yang untuk pesan acara, meskipun sekali lagi, ini tidak benar-benar diterapkan dengan pesan langsung tetapi disiarkan di bus. Tambahkan ke fakta bahwa saya baru saja melihat beberapa pesan yang ditambahkan yang dinamai perintah, yaitu, frase dalam imperatif, misalnya BillShippedPurchaseOrder
.
Yang aneh adalah bahwa nama-nama pesan dan cara mereka mengalir tidak berubah oleh apakah itu disebut sebagai suatu peristiwa atau sebagai perintah. Jadi bagaimana seseorang menentukan apakah sesuatu harus berupa pesan perintah atau peristiwa? Apakah ini hanya perbedaan semantik dan penamaan, atau adakah perbedaan implementasi yang sebenarnya antara pesan perintah dan acara? Mengingat bahwa semua pesan kami disiarkan, apakah itu berarti daripada tidak satupun dari mereka yang benar-benar pesan perintah?
request for information
fungsionalitas? Tampaknya wajar untuk menggunakan sesuatu sepertigetUserInfo(uid)
yang merupakan pesan perintah tanpa respons. Saya tahu bahwa pesan perintah memperkenalkan kopling, tetapi sayangnya dalam kasus ini, saya tidak melihat bagaimana menerapkannya dengan pesan acara. Atau tidak apa-apa untuk tetap berpegang pada perintah pesan pada beberapa kesempatan seperti ini?