This project brings together WhatsApp Business integration and the backend work around messaging: conversations, templates, campaigns, delivery tracking, and analytics across multiple tenants.
I want this case study to explain the parts that are easy to miss from a chat screen: incoming events, delivery states, background processing, and keeping the interface up to date.
The technical problem
Messages and their status updates arrive at different times. Webhooks can be retried, processing can fail, and multiple businesses need to share a platform without sharing their data. Those concerns shape the backend as much as sending a message does.
Decisions to document
- How webhook events are validated and processed.
- How duplicate events and retries are handled.
- How tenant boundaries are enforced.
- How delivery states reach the conversation interface.
- Where queues, Redis, and server-sent events fit into the system.
Next for this write-up
I’ll trace one message from an API request through delivery tracking, then explain a failure case and the tradeoffs behind the solution.