Dalam CQRS / ES, perintah dikirim dari klien ke server dan dialihkan ke penangan perintah yang sesuai. Handler perintah itu memuat agregat dari repositori, dan memanggil beberapa metode di atasnya, dan menyimpannya kembali ke repositori. Acara dihasilkan. Seorang manajer event handler / saga / proses dapat mendengarkan acara ini untuk mengeluarkan perintah.
Jadi, perintah (input) menghasilkan peristiwa (output), yang kemudian dapat mengumpan balik ke sistem lebih banyak perintah (input). Sekarang, apakah ini merupakan praktik yang umum bagi suatu perintah untuk tidak memancarkan peristiwa apa pun, melainkan untuk membuat perintah lain? Pendekatan semacam itu dapat digunakan untuk memaksa eksekusi dalam proses eksternal.
EDIT:
Kasus penggunaan spesifik yang ada dalam pikiran saya adalah pemrosesan rincian pembayaran. Klien mengirimkan PayInvoiceperintah, yang payload-nya meliputi rincian kartu kredit pengguna. Perintah ini PayInvoiceHandlerdikirimkan MakeInvoicePaymentke proses terpisah, yang bertanggung jawab untuk berinteraksi dengan gateway pembayaran. Jika pembayaran berhasil, suatu InvoicePaidperistiwa dihasilkan. Jika karena alasan tertentu sistem macet setelah PayInvoiceperintah tetap ada tetapi sebelum MakeInvoicePaymentperintah itu tetap ada, kita dapat melacak ini secara manual (tidak ada pembayaran yang akan dilakukan). Jika sistem crash setelah MakeInvoicePaymentperintah tetap tetapi sebelumInvoicePaidacara tetap, kami mungkin memiliki situasi di mana kartu kredit pengguna dibebankan tetapi faktur tidak ditandai sebagai telah dibayar. Dalam hal ini, situasinya harus diselidiki secara manual dan faktur secara manual ditandai sebagai berbayar.