Creator · 2025–Present

Realtime Incident Management API

Incident management API that pushes live state updates to clients over Server-Sent Events. TypeScript, clean domain model, no polling, no WebSocket overhead.

Visit github.com/Lanrey/realtime-incident-management-api →

Situation

Most incident management systems push state updates through polling. Clients ask "did anything change?" on a fixed interval. This adds latency, generates unnecessary load, and forces every client to implement its own retry logic. WebSockets solve the latency problem but introduce bidirectional connection overhead and connection statefulness that a read-mostly incident feed does not need.

Task

Build an incident management API that delivers live state updates to many clients simultaneously, with minimum latency and zero polling, using the right transport for unidirectional push rather than defaulting to WebSockets.

Action

  • Chose Server-Sent Events as the transport. It is unidirectional, works over standard HTTP, respects existing load balancers and CDN proxies, and handles client reconnection natively in the browser.
  • Built a clean domain model where incidents have defined lifecycle states and all state changes are expressed as immutable events.
  • Exposed the SSE stream as a live projection of those domain events. Clients subscribe once and receive updates the moment state changes, with zero polling.
  • Maintained strict type boundaries in TypeScript between the domain model and the transport layer. The SSE stream is a thin projection, not the data model itself.

Result

  • Clients receive incident state updates in real time with no polling overhead and no WebSocket connection management.
  • The domain model stays clean and independently testable. Swapping the transport layer would not touch business logic.
  • Publicly available at github.com/Lanrey/realtime-incident-management-api.