Stiamo creando un servizio di notifica il cui compito è inviare notifiche push all'utente finale. Esistono due tipi di notifiche
-
Notifica di gruppo in cui inviamo la stessa notifica di testo a tutti gli utenti di un gruppo. Ciò è facilmente ottenibile poiché tutti si iscrivono a un gruppo e inviamo una notifica a un gruppo.
-
Notifica personalizzata in cui inviamo notifiche di testo specifiche a ciascun utente.
La mia domanda è (per la notifica personalizzata) qual è il modo migliore per architettare il nostro servizio di notifica.
Approccio 1: manteniamo la logica di selezionare gli utenti in base alla logica delle app sul servizio applicativo in cui creiamo messaggi per ciascun utente e poi inviamo gruppi di utenti con un messaggio al servizio di notifica per inviarli?
Seleziona utenti in base alla logica dell'applicazione (sul server app) - > Effettua il loop su ciascun utente e crea il messaggio personalizzato (sul server dell'app) - > Crea gruppi di utenti 1K con un messaggio e invialo al servizio di notifica (sul server delle app) - > Invia notifica (servizio di notifica)
- Aggiunge carico sul server delle applicazioni
Approccio 2: consentiamo al servizio di notifica di accedere direttamente al database dell'app e recuperare gli utenti, creare il loro messaggio e inviarli?
Seleziona utenti - > Fai il loop per creare un messaggio - > Invia a ciascun utente (Tutto sul servizio di notifica)
- In questo approccio, il servizio di notifica deve accedere al DB di app e molte regole di app vanno qui, non sembra giusto. Poiché renderà il servizio di notifica contiene molta logica dell'app.
- Prendi il carico del server delle app perché tutto deve essere fatto dal servizio di notifica.
Cosa suggerite voi ragazzi? C'è qualche altro approccio che possiamo prendere in considerazione. Considerando che potremmo aver bisogno di inviare notifiche personalizzate a milioni di utenti.