Il Sfida delle Notifiche
Le notifiche sembrano semplici fino a quando non si devono inviare milioni di esse in modo affidabile. La velocità di consegna, la gestione dei token di dispositivo, il limite di tasso e le preferenze degli utenti sono tutti fattori importanti a livello di scala.
Panoramica Architettonica
[Trigger di Evento] → [Servizio di Notifica] → [Coda di Priorità] → [Lavoratori di Consegna] → [APNs/FCM]Gestione dei Token di Dispositivo
I token di dispositivo cambiano quando gli utenti reinstallano l'app o aggiornano il loro sistema operativo. Manteniamo un registro dei token con pulizia automatica.
class ServizioTokenDispositivo {
async registrareToken(idUtente, token, piattaforma) {
await this.db.dispositivi.upsert({
where: { token },
update: { idUtente, piattaforma, ultimaVisibilità: new Date() },
create: { idUtente, token, piattaforma, ultimaVisibilità: new Date() }
});
}
async rimuoviToken(token) {
await this.db.dispositivi.delete({ where: { token } });
}
}Sistema di Coda di Priorità
| Priorità | Tipo | Target di Latenza |
|---|---|---|
| Critico | Alerte di sicurezza, codici di 2FA | < 1 secondo |
| Alto | Aggiornamenti di ordine, messaggi | < 5 secondi |
| Normale | Marketing, newsletter | < 30 secondi |
| Basso | Digest settimanale, raccomandazioni | < 1 ora |
Limitazione di Tasso e Blocco
Prevenire la stanchezza delle notifiche limitando il numero di notifiche che ogni utente riceve ogni ora. Sono applicate diverse limitazioni a diversi tipi di notifiche.
Analisi e Tracciamento di Consegna
- Tracciamento del tasso di consegna (inviati vs. consegnati)
- Misura e ottimizzazione del tasso di apertura
- Test A/B del contenuto e della tempistica delle notifiche
- Gestione delle preferenze degli utenti e delle ore di silenzio
Pratiche Raccomandate
Personalizzare le notifiche in base al comportamento degli utenti, non solo alle loro caratteristiche demografiche. Inviare alle ore giuste per ogni utente, in base al suo fuso orario e ai suoi schemi di attività.