Learning about distributed systems: where to start? (2020)
muratbuffalo.blogspot.com
muratbuffalo.blogspot.com
The course has labs in Go: MapReduce, Raft, Fault-tolerant Key/Value, Sharded Key/Value
Spring 2024 course webpage: https://pdos.csail.mit.edu/6.824/
If you go through all the lectures and the labs, other materials posted here (including Martin Kleppmann's book) will feel easy and straightforward. Of course this does not prepare you for building a production-ready system, but you can go very far with what you learn from the course.
[1] Designing Data-Intensive Applications:
https://www.oreilly.com/library/view/designing-data-intensiv...
I also have the book, and can recommend both!
Anything from Martin is good; he bridges the academic and industry worlds, having worked extensively in both. He’s a big part of “Automerge” if you’re interested in Conflict Free Replicated Datatypes (CRDT’s) which is a relatively new development in the distributed space. The video on Google Spanner is also extremely interesting for a modern New SQL style database.
I'm misunderstanding this, please explain!
https://www.youtube.com/playlist?list=PLEGCF-WLh2RLOHv_xUGLq...
(Note that I still think that crypto and (permissionless) blockchain are inefficient deleterious nonsense...)
A lot of this stuff makes a lot more sense to someone who has a bit of "why we care" context - I'd suggest that for most people transactions look much more exciting after realising how much pain is involved in systems that don't have them. Conversely things like CAP theorem are a lot easier to contextualise as "ah ok, so there are failure cases I can't recover from theoretically; I have to make sure they are rare in practice" - it helps to know how big the magnitude is of these sort of theoretical limits.
- Opus Magnum
- Exapunks
- TIS-100There's no Postgresql or SQLite for distributed system or a template off the shelf standard design? (See LAMP or Linux/Docker/Postgres/Jenkins or rails or django)
(I haven't actually done them myself yet, but they look great. Not a standalone resource, but good for practice)
I also learned a ton by reading the jepsen analyses [2]. [3] is also helpful, but was recently put "behind a paywall" via an O'Reilly online book, but the internet archive should still have all the content ([4]).
[1] https://dancres.github.io/Pages/ [2] https://jepsen.io/analyses [3] https://martinfowler.com/articles/patterns-of-distributed-sy... [4] https://web.archive.org/web/20230628001937/https://martinfow...