Ho un set di dati contenente un elenco di utenti (circa 50 milioni).
Ogni utente ha un indirizzo email, un nome e altre colonne di dati.
Voglio inviare un'email settimanale a quegli utenti e il contenuto dell'email sarà basato sui dati dell'utente.
Ogni utente dovrebbe ricevere la posta in uno specifico giorno della settimana, in base alla sua data di registrazione.
Come faccio a progettare un sistema che mi consentirà di interrogare gli utenti e inviare loro l'e-mail personalizzata? Come posso rendere scalabile quel sistema?
Un approccio a cui ho pensato è scrivere un worker che interrogherà tutti gli utenti che hanno bisogno di ricevere l'e-mail nel giorno corrente (questo verrà impaginato) e li inserirà in una coda in cui diversi lavoratori possono elaborarli.
Il problema con questo approccio è che non posso aggiungere lavoratori che eseguono query sui dati e li inserisco in coda, perché non posso garantire che ogni utente verrà interrogato da un singolo operatore.
Forse posso utilizzare uno specifico DB o strumento di accesso ai dati? Esiste uno schema noto per questo tipo di elaborazione?
Apprezzerei i tuoi suggerimenti e pensieri sull'argomento.