Karena Anda menandai pertanyaan Anda dengan "CQRS", saya kira maksud Anda adalah peristiwa dalam konteks "CQRS & Event Sourcing", seperti dijelaskan di sini . Dalam tutorial ini , perbedaan antara peristiwa dan perintah dijelaskan dengan baik:
peristiwa menangkap "hal-hal yang dapat terjadi" yang mendasar dalam sistem Anda, dari sudut pandang sistem.
perintah didefinisikan oleh apa yang pengguna anggap sebagai operasi, dari sudut pandangnya
Dan meskipun ini sering mengarah ke beberapa perintah dan acara dengan korespondensi 1: 1, sudut pandang yang berbeda ini dapat mengarah pada perintah yang memecat lebih dari satu peristiwa, atau peristiwa yang berbeda tergantung pada parameter perintah. Saya bahkan bisa membayangkan kasus-kasus di mana perintah sama sekali tidak membangkitkan suatu peristiwa, tetapi itu akan menjadi kasus yang sangat luar biasa, bukan yang sangat khas.
Misalnya, tutorial menyebutkan acara
- Dibuka Tab
- Minuman yang dipesan
- Makanan yang dipesan
dan perintah
Di sini, perintah "OpenTab" akan mengarah ke acara "TabOpened", tetapi perintah PlaceOrder akan mengarah ke acara "DrinksOrdered", "FoodOrdered", atau keduanya.
Bahkan, jika Anda mendesain sistem baru "dari awal", Anda dapat mencoba mendesainnya dengan korespondensi 1: 1 antara perintah dan acara dan lihat seberapa baik skala itu ketika sistem menjadi lebih besar. Anda bahkan dapat mencoba pendekatan hybrid: daftar acara dan perintah dengan korespondensi 1: 1, bersama dengan beberapa perintah tambahan, gabungan. Coba saja seberapa jauh itu menuntun Anda untuk sistem tertentu yang Anda rancang.