I’ve been doing some reading on designing systems for scalability, and I thought I could quickly post some of the useful YouTube videos that I have found. There are numerous system design problems and solutions that have videos on YouTube, but I haven’t included the ones that I have watched.
Eventually I came across this video on system design, that actually gives a good list of the various technologies that are used in some of the most scalable applications available today.
The choice of database is obviously important, and it is useful to understand the in-memory databases like Redis. Transactions also come up, via myths and surprises, and how the transaction levels relate to the CAP theorem.
Uber deal with some of the reliability data by storing data on their drivers’ mobile phones.
GraphQL came up several times as an alternative to REST APIs. It often requires fewer round trips, and makes tool support easy by using a schema. There is an introduction here and the coding of a server (which explains what you can do about the N+1 problem using an online demo system).
There is a good general talk about lessons learned here.
I had heard about Bloom Filters before, but hadn’t come across the Count-min sketch algorithm