Costruisci un unico servizio che ogni team chiama con un tipo di notifica + destinatario, e lascia che il servizio risolva canale, template, preferenze utente e priorità. La mossa progettuale chiave sono le corsie di priorità: un OTP non può aspettare dietro un invio marketing da 2M di utenti.
Architettura
Services ─▶ Notify API ─▶ [validate + enrich] ─▶ Kafka topics
├─ otp/txn (high lane)
└─ marketing (bulk lane)
│
┌──── Dispatcher (per lane) ────┐
│ prefs check ─▶ template render │
└────┬──────┬──────┬────────────┘
Push Email SMS In-App
(provider adapters + rate limit)
