Esistono due modelli di base per la trasmissione di eventi in un'architettura basata sugli eventi
Messaggistica di eventi o pubblicazione/sottoscrizione
Nel modello di messaggistica degli eventi o di pubblicazione/sottoscrizione, i consumatori di eventi si iscrivono a una o più classi di messaggi pubblicati dai produttori di eventi. Quando un produttore di eventi pubblica un evento, il messaggio viene inviato direttamente a tutti i sottoscrittori che desiderano consumarlo.
In genere, un broker di messaggi gestisce la trasmissione di messaggi di evento tra autori e sottoscrittori. Il broker riceve ogni messaggio di evento, lo converte se necessario, ne mantiene l'ordine rispetto agli altri messaggi, lo rende disponibile ai sottoscrittori per il consumo, quindi lo elimina una volta consumato (in modo che non possa essere nuovamente consumato).
Streaming di eventi
Nel modello di streaming di eventi, i produttori di eventi pubblicano flussi di eventi su un broker. I consumatori di eventi sottoscrivono i flussi, ma invece di ricevere e consumare ogni evento non appena viene pubblicato, possono entrare in ogni flusso in qualsiasi momento e consumare solo gli eventi che desiderano consumare. La differenza fondamentale qui è che gli eventi vengono conservati dal broker anche dopo che i consumatori li hanno ricevuti.
Una piattaforma di streaming di dati, come Apache Kafka, gestisce la registrazione e la trasmissione di enormi volumi di eventi ad una velocità molto elevata (letteralmente bilioni di record di eventi al giorno, in tempo reale, senza ritardi nelle prestazioni). Una piattaforma di streaming offre alcune caratteristiche di cui un broker di messaggi non dispone:
- Persistenza degli eventi: poiché i consumatori possono consumare gli eventi in qualsiasi momento dopo la loro pubblicazione, i record di streaming degli eventi sono persistenti - vengono mantenuti per un periodo di tempo configurabile, da frazioni di secondo a un tempo infinito. Ciò consente alle applicazioni del flusso di eventi di elaborare dati cronologici e dati in tempo reale.
- Elaborazione di eventi complessi: come la messaggistica di eventi, il flusso di eventi può essere utilizzato per l'elaborazione di eventi semplici, in cui ogni evento pubblicato attiva la trasmissione e l'elaborazione da parte di uno o più consumatori specifici. Tuttavia, può essere utilizzato anche per l'elaborazione di eventi complessi, in cui i consumatori di eventi elaborano intere serie di eventi ed eseguono azioni in base al risultato.