Skip to content
Abhijeet Maharana, home
← All case studies

Hewlett Packard Enterprise · Software Engineer Specialist

Real-Time Enterprise Dashboards with SSE

Case study by Abhijeet Maharana

TL;DR: At Hewlett Packard Enterprise I delivered real-time dashboard features using Server-Sent Events and cloud-native patterns, used by 10,000+ daily active users. I also built the CI/CD pipelines for automated testing, linting and deployment, which cut release cycle times by a third.

What problem did the dashboards need to solve?

Enterprise dashboards are only useful if the numbers on screen are current. Users keep them open for hours, so the data has to update in place, reliably, without hammering the backend or freezing the browser.

Why Server-Sent Events instead of WebSockets?

The data flowed one way, from server to browser. For that shape, SSE has clear advantages:

  • Plain HTTP. It works through corporate proxies and load balancers without special handling.
  • Built-in reconnect. The browser reconnects automatically, and Last-Event-ID lets the server resume the stream.
  • Simpler servers. No custom protocol or connection upgrade, so it fits standard cloud infrastructure.

WebSockets are the better choice when the client also streams data back. For read-heavy dashboards, SSE did the job with fewer moving parts.

How did the frontend handle a constant stream of updates?

A live stream can easily turn into a memory leak or a UI that re-renders constantly. The patterns that kept it stable:

  • One hook owns the connection, with cleanup on unmount and reconnects that back off exponentially instead of retrying in a tight loop. I published a cleaned-up version of this pattern as a public gist: useEventSourceStream.
  • Updates go only where they are needed, so a new data point re-renders the widget that shows it, not the whole dashboard.
  • D3.js for data-heavy charts, which keeps rendering fast for dense visualisations.

How did CI/CD cut release cycles by a third?

Releases used to depend on manual checks. I built pipelines that run on every change:

  1. Lint and type check to catch mistakes in seconds.
  2. Automated tests before anything can merge.
  3. Automated build and deployment, so shipping is a merge, not a manual procedure.

Less manual QA and fewer surprises late in the cycle cut release cycle times by a third.

What were the results?

MetricResult
Daily active users10,000+ on the real-time dashboards
Release cycle timeCut by a third
QA overheadReduced through automated testing, linting and deployment

When should a startup use SSE?

If you are building live analytics, notifications, progress updates or AI responses that stream token by token, SSE is usually the simplest correct answer. Reach for WebSockets when the client needs to talk back at the same rate.