1---2title: "Keeping live data reliable for users"3slug: "keeping-live-data-reliable"4date: "2025-08-20"5description: "What matters when dashboards, notifications, and live updates need to stay clear even when networks are unreliable."6cover: chart7tags:8 - Architecture9 - Real-time data10---11 12The mistake I see most often: every screen opens its own socket, parses raw messages, and silently reconnects in a slightly different way. It works until it doesn’t.13 14I try to keep sockets and polling behind a small service layer. Components subscribe to something typed and domain-shaped: “reservation updated,” not `{"t":"evt","p":...}`.15 16Networks drop. Show it. Retry with backoff. Do not pretend the user is always online, especially on flaky office Wi‑Fi.17 18If you can, write a couple of tests around the message shapes you depend on. Backend will change. You’ll thank yourself when the contract breaks in CI instead of on a customer demo.