Go plus services and one goliath project

Click for: original source

An article by Kevin Dangoor from Khan Engineering about how Khan Academy is embarking on a huge effort to rebuild our server software on a more modern stack in Go.

Ten years is a long time in technology! Academy chose Python as their backend server language and it has been a productive choice for them. Of course, ten years ago they chose Python 2 because Python 3 was still very new and not well supported.

While considering transformation they were also looking at the languages that have first-class support in Google App Engine. They considered Go and Kotlin. Kotlin is a very expressive language with an impressive set of features. Go, on the other hand, offers simplicity and consistency. The Go team is focused on making a language which helps teams reliably ship software over the long-term.

Finally, we ran a bunch of tests around performance and found that Go and Kotlin (on the JVM) perform similarly, with Kotlin being perhaps a few percent ahead. Go, however, used a lot less memory, which means that it can scale down to smaller instances.

The article then describes their journey:

  • From monolith to services
  • Cleaning house
  • What’s not changing
  • The plan

Good read with some interesting observations! Links to more articles with academy experience included.

[Read More]

Tags management software-architecture apis kubernetes software-architecture kotlin