Ho un'architettura di servizio composta da servizi che servono aree comuni dell'applicazione. Esempi di servizi sarebbero:
- AccountService (gestisce gli account client nel sistema)
- BillingService (fattura i client per i prodotti configurati)
- UserService (gestisce utente e gruppi sotto un determinato client)
- NotificationService (invia notifiche via email / SMS / push / qualsiasi metodo quando si verificano determinati eventi)
Ho un cluster ActiveMQ in cui spingo gli eventi su cui agire ... il che porta alla domanda ...
Dov'è il posto giusto dove mettere un ascoltatore di messaggi che reagisce a un evento ai fini dell'invio di una notifica? Un semplice esempio potrebbe essere: "Voglio avvisare il proprietario dell'account via e-mail quando un nuovo utente viene aggiunto al proprio account."
Questo ascoltatore dovrebbe trovarsi in NotificationService (che deve essere altamente generico) o in UserService (dove viene eseguita l'azione) o in un servizio separato che funge da router?