Designing Real-Time Systems That Stay Boring in Production
Patterns for WebSockets, backpressure, and observability when messages per second stop being a demo metric.
Real-time features are easy to demo and hard to operate. The gap is almost always observability and backpressure — not the transport layer.
Separate hot paths from cold paths
Presence, typing indicators, and live dashboards have different consistency requirements. Mixing them in one channel creates noisy failure modes. I split streams by SLA and apply rate limits at the edge.
Measure what users feel
Track p95 delivery latency, reconnect storms, and poison-message rates. Prometheus plus structured logs beat guessing from CPU graphs.
Plan for reconnects as the default
Mobile networks and sleeping tabs mean reconnections are normal. Idempotent handlers and versioned event payloads prevent duplicate side effects.
Related logs
More notes on similar topics.
- 1 min read
Shipping With Constraints: Lessons From Startup Builds
Why the best engineering decisions on early teams come from embracing constraints instead of fighting them.
startupsproductengineering - 1 min read
Is Programming Enough? Soft Skills That Ship Products
Communication, prioritization, and collaboration matter as much as clean abstractions when you're accountable for outcomes.
careersoft-skillsleadership