Overview

Bacancy modernized Sterling HMS, a US hospital network’s in-house platform for patient records, scheduling, and continuous patient monitoring. While the Node.js-based system continued to run the records and administrative modules effectively, the monitoring module faced growing concurrency demands as thousands of connected devices streamed real-time vitals through persistent connections during peak hours. Since the challenge was isolated to patient monitoring, we avoided a full system rewrite and migrated only the concurrency-intensive module to Golang. Go’s goroutine model enabled the platform to handle thousands of simultaneous connections with fewer servers, while the rest of the application remained on Node.js. Both environments now run side by side behind a shared API gateway.

Technologies Used

Golong
Nodejs
gPRC
PostgreSQL
REST API
JIRA

Project Highlights

checkmark

Patient-monitoring module migrated to Go while the Node.js core was retained

checkmark

Strangler-fig migration that kept the live hospital system serving throughout

checkmark

Thousands of concurrent device connections held on far fewer servers

checkmark

Go and Node.js running side by side behind a shared API gateway

The Challenges

1

At peak hours, the monitoring module handled thousands of concurrent device connections, where slow responses could affect patient care

2

Scaling Node.js horizontally kept growing server requirements because each process used more memory per connection than necessary

3

The fix had to improve the real-time monitoring paths without touching the Node.js modules that were already working well

4

Rewriting a live hospital management system was too risky, so the change had to be gradual, isolated, and reversible

Solutions by Bacancy

1

Our engineers profiled the system before changing anything, and the picture was clear: the record and administrative modules were healthy on Node.js, while only the monitoring module was under genuine concurrency pressure

2

Because the problem was isolated, we did not default to a rewrite. Our healthcare developers weighed in-stack options such as clustering and horizontal scaling, then chose Golang only where its goroutine model is a structural advantage rather than a preference

3

Our Golang developers rebuilt the monitoring module as Go microservices, each holding thousands of concurrent device connections on a single instance, and cutting the server count to the same load needed on Node.js

4

To keep the system live throughout, the team used the strangler-fig pattern behind an API gateway, so the Go monitoring services and the Node.js core run together and exchange data over REST and gRPC with no disruption to clinical workflows

Core Features

checkmark

Golang Microservices for the Patient-Monitoring Module

checkmark

Polyglot Architecture with Node.js and Go Behind a Gateway

checkmark

High-Concurrency Device Connection Handling

checkmark

Strangler-Fig Migration with Zero Downtime During Cutover

No. of Resource

04

No. of Resource

Time Frame

Jan 2026 - March 2026

Time Frame

Project Snapshot

Project Snapshort of Sterling HMS

Outcomes

~3x faster monitoring service response under peak load

Peak-hour connection queuing completely eliminated

~7x reduction in peak-hour service outages, maintaining 99.9%+ uptime

35–40% fewer servers required, reducing infrastructure costs

Node.js core retained with zero operational disruption

Monitoring scales with device growth, not server growth

Technical Stack

Backend (migrated module) Golang (Go)
Backend (retained) Node.js
Database PostgreSQL
API Communication RESTful APIsgRPC
Architecture MicroservicesStrangler-Fig MigrationAPI Gateway
Project & Issue Tracking JiraConfluence

Experience With Bacancy

2500+ Projects Experienced Innovation with Bacancy!

Get access to an experienced team of developers and engineers from Bacancy, handpicked to ace your goals. Kickstart within 48 hours, no-risk trial.

Book a 30 min call

14+

Years of Business Experience

1458+

Happy Customers

12+

Countries with Happy Customers

1050+

Agile Enabled Employees

How Can We Help?