Sto lavorando a un progetto in cui ho ottenuto un'architettura con più "microservizi" che comunicano tra loro utilizzando un bus eventi (RabbitMQ).
Ho creato un progetto API Web per ogni servizio in modo che il mondo esterno possa inviare comandi utilizzando le chiamate REST.
Quando la mia Web-API riceve una chiamata, invia il comando al mio livello di dominio dove elaboro quel comando e persisto qualsiasi dato se necessario. Quando ciò è fatto, aggiorno i miei servizi circostanti pubblicando un evento con i dati corrispondenti.
La cosa con cui sto combattendo è la parte finale della comunicazione guidata dagli eventi. Come può un microservizio essere pronto ad accettare chiamate API dal mondo esterno e avere qualche gestore di eventi in attesa di eventi in arrivo nello stesso momento? Sembra che questo non dovrebbe essere un altro servizio, ma non riesco a pensare a nessun altro modo per affrontare questo problema.
Spero che l'immagine seguente chiarisca le cose
Se abbiamo un sistema bancario e quando vogliamo creare un cliente, abbiamo bisogno che il servizio account reagisca a quell'evento e creiamo un account per lui. Come possiamo essere sicuri che il servizio account sia pronto a ricevere chiamate API e gestire simultaneamente gli eventi dal bus eventi?