shared infrastructure
Notification service
One provider-agnostic pipeline for email, SMS and WhatsApp that every Dhiway product sends through.
Context
Jobstack and the identity products each needed OTPs, signup confirmations and application updates across several channels. Each product integrating each provider directly would have multiplied failure handling and credentials.
What I built
A single notification service built on Fastify and Redis queues. Products send one signed request; the service picks the channel adapter (email, SMS via MSG91, WhatsApp) and delivers.
Engineering
- Signed requests. Callers sign with HMAC, so only known services can trigger messages.
- Failure handling. Deliveries retry from Redis queues; messages that keep failing land in a dead-letter queue instead of disappearing.
- Provider-agnostic. Adding or swapping a provider is an adapter change, not a change in every product.