
Scaled a cloud LMS to 250k concurrent learners
Engagement
26 weeks
Team
1 tech lead, 6 engineers, 1 architect, 1 designer
Industry
Education
Stage
Enterprise
The numbers that mattered to the client.
What we walked into.
The client's on-prem LMS couldn't scale past 40k concurrent learners without falling over. During exam season, the platform degraded visibly — pages took 8+ seconds to load, assignments submission timed out, and the support inbox filled up.
A cloud migration was needed, but the LMS was 12 years old, 480k lines of Java, and 0 test coverage on the hot paths. A rebuild wasn't an option — the business logic was too entangled with 12 years of regulatory compliance work.
What we built.
We followed a 'strangle fig' migration: kept the legacy LMS running, extracted services one at a time behind API gateways, and ran both platforms in parallel for 6 months. The last legacy service was decommissioned in week 26.
Multi-tenancy was built into the data layer — every table has a tenant_id, every query is scoped. This let us onboard 12 school districts onto the same platform without code forks.
We built test coverage on the hot paths first (assignment submission, gradebook, content delivery) — 87% line coverage on those paths within 4 weeks. The rest of the codebase got coverage as we extracted each service.
Tech stack
What changed for the client.
- 250k concurrent learners sustained (was 40k)
- p95 response time 0.6s (was 8s on legacy at peak)
- 99.95% uptime during exam season (the highest-stress period)
- 12 school districts onboarded onto the same multi-tenant platform
- 0 critical incidents in the first exam season post-launch
“We survived our first exam season post-launch without a single P1. Last year we had 14. The strangle-fig approach is what made it possible.”
CIO
Education publisher
Want results like these?
Book a free 30-minute consultation. We'll review your situation and propose a small first milestone — same playbook as the case studies above.


