Ho questo evento aziendale: "CustomerUpdated" pubblicato dal mio sistema.
Ho molte applicazioni che ascoltano questi eventi e fanno tutto il possibile: inviare e-mail, aggiornare il database, cancellare la cache ecc ... quindi non posso usare una coda qui, ma non posso usare una topic, perché se sono in esecuzione 2 istanze dell'applicazione di posta (le ho create per la scalabilità), l'email verrà inviata due volte: una per ogni istanza.
Quindi cosa dovrei fare:
-
ha un'istanza univoca che sta ascoltando l'evento e quindi pubblica un elemento di lavoro nella coda "SendCustomerUpdatedEmail"? : ma ciò aggiungerebbe un collo di bottiglia alla mia app (non una grande però)
-
salva un "CustomerUpdatedEmailsHandled" in una posizione centralizzata (db) e salva qui qualcosa che identifica l'evento (guid)
-
Un altro pattern davvero intelligente che non riuscivo a capire
PS: l'ho postato su link ma non ho ricevuto alcuna risposta (solo qualcuno mi ha detto che ho preso decisioni sbagliate ma senza soluzioni) e sembra che lo stackoverflow sia stato creato per" codificare " domande così ...