Technology leadershipPeople · Systems · Delivery

Notes

Architecture7 min read

Scaling an EdTech platform to 200,000 users on a startup budget

EdTech traffic doesn't grow — it detonates. Result day can be 50× a normal Tuesday. These are the decisions that let a small team survive it.

Consumer apps get gentle traffic curves. School platforms get synchronized stampedes: every parent in a city refreshing for results within the same ten minutes, every teacher marking attendance in the same half hour before first period. When we planned the platform's architecture, "average load" was a useless number. Peak was the only number that mattered.

Break the monolith where it hurts, not everywhere

The fashionable advice is "microservices everything." With a small team, that's a great way to turn one manageable codebase into twelve unmanageable ones. We split along pain lines, not domain diagrams:

  • Notifications went first — SMS and push bursts to thousands of parents were choking request threads.
  • Reports and exports went second — a principal generating a term report should never slow down a classroom.
  • Everything else stayed together until it earned its independence.
A queue is the cheapest scaling technology ever invented. Use it before you use anything else.

The boring stack that held

Nothing exotic survived contact with production. What held up: load-balanced app servers that autoscale on schedule (we know when school starts), read replicas for the reporting workload, aggressive caching for anything a parent sees, and background queues for everything that doesn't need to happen inside a web request.

Multi-tenancy discipline was the other half. When one tenant's data pattern can degrade every other school on the cluster, per-tenant limits are a feature, not a restriction.

What almost killed us

Two near-misses worth admitting. An unindexed query that was fine at 40 schools and a catastrophe at 140 — growth turns your slow queries into outages, so we now review query plans as part of scaling checkpoints. And result-day traffic that beat our autoscaling reaction time — the fix was pre-warming capacity on known academic dates, because in EdTech, the calendar is your best monitoring tool.

200,000 users later, the lesson is consistent: scaling isn't about clever architecture. It's about knowing your traffic better than anyone else, and spending your complexity budget only where the pain is real.