Dato che hai taggato la tua domanda con "CQRS", suppongo che intendi eventi in un contesto "CQRS & Event Sourcing", come se fosse descritto qui . In questo tutorial , la differenza tra eventi e comandi è ben spiegata:
Gli eventi -
catturano le elementari "cose che possono accadere" nel tuo sistema, dal punto di vista del sistema.
I comandi -
sono definiti da ciò che l'utente considera come un'operazione, dal suo punto di vista
Anche se questo spesso porta a un paio di comandi ed eventi con una corrispondenza 1: 1, questi diversi punti di vista possono portare a comandi che generano più eventi o eventi diversi a seconda dei parametri del comando. Posso persino immaginare casi in cui un comando non genera un evento, ma sarebbe un caso eccezionale, non molto tipico.
Ad esempio, il tutorial menziona gli eventi
- TabOpened
- DrinksOrdered
- FoodOrdered
e comandi
Qui, il comando "OpenTab" porterà a un evento "TabOpened", ma il comando PlaceOrder porterà agli eventi "DrinksOrdered", "FoodOrdered" o entrambi.
In effetti, se stai progettando un nuovo sistema "da zero", puoi provare a progettarlo con una corrispondenza 1: 1 tra i comandi e gli eventi e guardare quanto bene si ridimensiona quando il sistema diventa più grande. Puoi anche provare un approccio ibrido: un elenco di eventi e comandi con una corrispondenza 1: 1, insieme ad alcuni comandi combinati aggiuntivi. Prova solo fino a che punto ti porta per il particolare sistema che stai progettando.