How We Tamed the Notification Flood in PDP
When you have 4,000+ rooms and dozens of events coming in for each one, you need to send Email, SMS, and WebSocket notifications at scale without freezes or chaos. To do that, we moved everything to async processing and enabled backpressure.

When you have 4,000+ rooms and dozens of events coming in for each one, notifications start flying like push alerts on an iOS release day 😅 In PDP, we ran into the need to send Email, SMS, and WebSocket notifications at scale — and to do it without freezes or chaos.
We moved everything into async processing with Taskiq: every notification became a queued task. But at peak load, a regular queue is not enough, so we enabled backpressure — the system now throttles the stream itself to avoid overwhelming workers and external services.
Then came prioritization: critical SMS messages go first, while informational Email messages wait their turn. We also handle WebSocket asynchronously, so the UI stays responsive instead of “thinking about eternity”.
The result: under load, the system does not panic; it behaves predictably. In an era when everyone talks about fault tolerance and real-time systems, this kind of pipeline is no longer a nice-to-have — it is the baseline.