Attualmente sto sviluppando un'applicazione utilizzando la programmazione reattiva. Ogni creazione o modifica di entità nel sistema pubblica un evento e non è possibile creare / modificare due entità all'interno dello stesso caso d'uso.
In questa situazione, ci sono entità che devono essere create in base a stati specifici di altre entità. Ad esempio, esiste un'entità Slot che, una volta creata con uno stato IN_AUCTION, dovrebbe attivare la creazione di un'entità Asta. Questo è opzionale, poiché lo Slot può essere creato con uno stato DISPONIBILE, nel qual caso non è necessario creare un'Asta.
Dato questo caso, il mio dubbio riguarda il tipo di evento da pubblicare quando viene creato lo Slot. Queste sono le opzioni a cui ho pensato:
- Pubblica un generico SlotCreatedEvent. In questo caso, il listener dovrebbe verificare lo stato dello Slot, aggiungendolo all'evento Slot o interrogandolo per verificarne lo stato.
- Pubblica uno SlotInAuctionEvent o uno SlotAvailableEvent. In questo caso, ci sarebbe un listener specifico che creerebbe l'asta senza verificare lo stato dello slot ma se seguo questo approccio potrei avere un'esplosione di eventi.
Quindi, dato questo esempio, qual è la granularità attesa durante la pubblicazione degli eventi? Dovrebbe esserci un evento specifico per ogni modifica di stato / entità o solo uno generico con tutte le informazioni dell'entità modificate?