A Decade on Python 2
Khan Academy’s backend ran on Python 2 for over a decade, serving millions of learners. It worked, and the team knew it well.
Python 2's official support clock ran out — so the team asked whether a same-language upgrade was even the right move.
Khan Academy’s backend ran on Python 2 for over a decade, serving millions of learners. It worked, and the team knew it well.
Python 2’s official end of life landed in 2020. After that, no more security fixes. Staying on it wasn’t an option — but the obvious move, upgrading to Python 3, raised a bigger question: if a large, disruptive migration was unavoidable anyway, was a same-language upgrade really the best use of it?
The team picked Go: strongly typed, fast, and built for backend services, catching whole categories of bugs before code ever runs.
Rather than one big-bang rewrite, the team moved service by service, running old and new side by side and shifting traffic incrementally. Each step stayed reversible.
The Go backend ran faster on meaningfully fewer servers, cutting infrastructure costs while giving developers a type-checked codebase to build on.
Source — read the original
https://blog.khanacademy.org/half-life-1-the-incredible-shrinking-stack/A plain-language, AI-drafted and human-edited retelling of the article published on blog.khanacademy.org, reorganized and explained in our own structure and words, with original analysis in the editor's note above. The facts, numbers, and decisions belong to the original author and are not altered. For the full depth, read the source.