Builds.Syed Tasavour
Builds
Productlive2019

Kashmir Student Alerts

Exam results in Kashmir do not trickle out. A board publishes, word spreads, and inside two minutes essentially every student in the region is on the same page looking for their number. The rest of the week it is quiet. That is the whole engineering problem, and it is why the obvious answer was wrong: a server sized for the normal day falls over on the only day anyone judges you on, and sizing for the peak means paying for it on the 360 days it never arrives. The parts that spike scale to zero between events and the read path is cached hard, because during a spike almost every request is the same request. There is no account, no feed, no personalisation. Each was considered, and each adds something to fail on the day the site cannot afford to fail.

Node and MongoDB behind a Redis cache, on AWS. The cache is not an optimisation here, it is the design. During a result spike almost every request is the same request, so the database mostly never sees the traffic at all.

Started
2019
Stack
Node.js, Redis, MongoDB, Socket.IO, AWS, React.js, S3, EC2, ELB
Kind
Product
Source
Public
3M+
Monthly actives
20K+
Peak concurrent, result days
Since 2019
Live, and still running
Client owned
Their platform, built by me
99.9%
Uptime

How it evolved

  1. 2019
    Scoped

    Worked out what actually needed building before writing any code.

  2. 2019
    Built

    Built and shipped the core of it.

  3. 2019
    Live

    Shipped and kept it running.

Built by Syed Tasavour. More at syedtasavour.com.