The problem
RC Design built and ran the public and internal portals for Humber River Hospital and Southlake. Then the first wave of the vaccine rollout arrived, and the booking page lived on those portals.
Booking slots opened at set times. So did the traffic. Everybody in the region loaded the same page in the same minute, and the rest of the hospital site still had to work: emergency department open and closed alerts, patient information, the staff side.
The constraint
The usual answer to a traffic spike like that is a waiting room. We considered one and rejected it.
A queue decides who sees the booking page first. We wanted every person to see the same page on equal terms when booking opened. The booking page also had to stay inside the same system as the rest of the site.
What I did
I was the architect and lead on both portals.
- Put a CDN and caching layers in front of the site, so most requests never touched the application.
- Added read replicas and load balancing, so the database and the servers shared the load.
- Wrote timer scripts that showed and hid the booking page at set times. The page opened on schedule without a person pressing a button at the exact minute.
- Connected vaccine scheduling and the other hospital systems the portal depended on.
- Built emergency department open and closed alerts into the public site.
How it went
The portals carried the first wave of the rollout. We upgraded server tiers more than once as volume grew, and the booking page stayed part of the same site the whole time.
Southlake's portal had the same scope and the same always-on requirement, and it ran on the same approach.