Ho un sistema in esecuzione in Azure che accetta messaggi tramite un endpoint REST. Il cliente ha un certo numero di dispositivi che inviano alcuni dati ad esempio la temperatura e presentiamo questi dati in un'interfaccia web. La parte del sistema che accetta i messaggi è separata dal sito Web (microservizi!) Ma accede allo stesso database (non così microservizi?). Sto creando una nuova funzionalità che consente al cliente di impostare le notifiche. Ad esempio, il cliente definisce che se uno qualsiasi dei suoi dispositivi invia una temperatura superiore a 50 ° C, deve essere inviata un'e-mail. Le notifiche possono essere istantanee (o di periodo relativamente breve) o aggregate (giornaliera, mensile, ecc.).
Il modo in cui avevo costruito queste cose in passato su premessa consisteva nell'impostare un servizio Windows che esegue il polling del database che periodicamente ottiene le definizioni di notifica, ottiene i messaggi corrispondenti e invia le e-mail corrette sia istantanee che aggregate. Tuttavia qualcosa mi dice che in questo modo non è affatto nuvoloso. Dovrei usare una coda di messaggi, un bus di servizio o qualcos'altro? Se sì quale? Che dire delle notifiche aggregate? In caso contrario, qual è l'equivalente migliore di un servizio Windows in Azure oggi per il mio caso d'uso? Devo ancora usare un ruolo di lavoratore?
Si noti inoltre che in futuro i messaggi potrebbero essere estratti dal database relazionale e inserire una soluzione NoSQL e in pratica sono molto più complessi di un numero (l'endpoint REST esegue qualche elaborazione prima di memorizzarli nel DB) . L'endpoint REST ha accesso alle definizioni di notifica e potrebbe potenzialmente elaborare le notifiche in sé, ma vorrei evitarlo perché mi piace la netta separazione e la semplicità dei servizi separati che attualmente ho. Anche l'elaborazione del messaggio quando ricevuto non risolve il problema di aggregazione. Se è importante, ci aspettiamo un numero relativamente piccolo di utenti, ma un gran numero di messaggi e, si spera, un gran numero di dispositivi che inviano messaggi. Nel caso in cui non sia chiaro ci sono più utenti che ricevono ciascuno notifica per i propri dati.