FealDeal
Vidyapath Learning
A live-cohort LMS rebuilt around the insight that a lecture is a broadcast, not a conference call — WebRTC for the stage, low-latency HLS for the hall, and proctoring that reviews only what it flags.
0% lower
Lower infrastructure cost per learner
0
Peak concurrent learners in a single live class, no incident
0% lower
Lower proctoring cost per exam, same integrity outcomes
0
Question-bank leaks across nine assessment cycles
01
Vidyapath Learning runs live, cohort-based upskilling programmes — data engineering, product management, cloud — for working professionals. 40,000 learners on the roll, up to 1,200 concurrent in a single evening class, and a unit economics problem that was quietly getting worse every month.
Every live class ran on a general-purpose video conferencing product, with all 1,200 attendees joined as full participants. But in a lecture, twelve people speak and 1,188 watch. They were paying real-time, bidirectional WebRTC prices — the most expensive way to move video that exists — to deliver a broadcast. The per-learner infrastructure cost was rising faster than the price they could charge.
Traffic is not diurnal — it is a spike. Working professionals attend class between 8pm and 10pm IST. The platform was idle for twenty hours a day and screaming for four, and it was provisioned for the screaming.
02
The single change that reset the economics. Interactive seats — the instructor, TAs, and up to ~200 learners on the "stage" — run over managed WebRTC. Everybody else receives low-latency HLS, which is roughly an order of magnitude cheaper to fan out and is what they were actually consuming anyway. A learner who raises a hand is promoted from HLS to WebRTC in a couple of seconds and demoted when they are done.
We did not build our own SFU. Operating one is a business, not a feature, and the managed provider's edge footprint across India is not something we were going to reproduce for a client of this size. We spent the engineering budget on the promotion/demotion mechanic instead, because that is where the money was.
"Joined" is not attendance — a learner who opens the tab and walks away is not attending. The player emits a heartbeat every 30 seconds, heartbeats go onto a queue, and a worker aggregates them into presence intervals. Certification eligibility reads the aggregate. Nobody keys anything into a spreadsheet, and the definition of attendance is now a line of code that can be argued about openly rather than a convention that lived in one operations manager's head.
Items are served one at a time, selected at request time from a calibrated pool with per-item exposure caps so no single question burns out across a cohort. The client never holds an item it has not been asked. Timing is server-side, always — client clocks lie, and on an exam, some of them lie deliberately.
We inverted the vendor's cost model. The browser emits cheap integrity signals — visibility change, fullscreen exit, paste events, a second display appearing — and the webcam is sampled at one frame every 8 seconds, uploaded straight to object storage via a presigned PUT so the frames never transit the application servers. Human review is triggered only on flagged sessions.
Roughly 92% of sessions are never flagged, and paying a human to watch those was the entire cost problem. Recording everything and reviewing everything is the lazy design; recording cheaply and reviewing selectively is what the problem actually calls for.
The 8pm burst is I/O-bound — the CPU graph barely moves while the platform is drowning. Autoscaling on CPU meant the fleet scaled up after the class was already degraded. We scale on queue depth and connection count, which lead the problem instead of trailing it, and we pre-warm on the class schedule, because the class schedule is known in advance. Reporting runs against a read replica so a programme director pulling a cohort report cannot slow down a live lecture.
03
Migrated cohort by cohort over a term, with the old and new class experiences running side by side for three weeks so learners could switch back if the new one was worse. After the second week, nobody switched back.
Attendance data went from a spreadsheet somebody maintained to a stream the product reads, and the certification pipeline stopped being a monthly manual exercise. More importantly, the unit economics inverted: adding learners to a cohort now costs them very little, so their marginal cohort is profitable in a way it flatly was not before.
They have since doubled cohort sizes on their two largest programmes without adding infrastructure spend, which is the outcome that turns an engineering project into a business one.
Under the hood
Technology
Services used
They asked one question in the first workshop — how many of your 1,200 attendees ever unmute? The answer was twelve. That question ended up halving our cost per learner.