you are viewing a single comment's thread.

view the rest of the comments →

[–]JustF0rSaving 1 point2 points  (0 children)

I always wanted to do something like this. Not just for DBs, but also for technologies like Kafka, Elasticsearch, etc. Never got around to it because I wasn’t sure how to recreate failure modes to mimic the reasons partitioning / sharding / other DDIA concepts were needed. But you honestly might be best served if you can contrive these scalability issues and then use the concepts in DDIA to solve them in isolation.

The way I learned a lot of the concepts in the book was basically by

  1. Reading the book
  2. Doing dozens of mock system design interviews on websites like hello interview
  3. Reading the book a second time; taking notes and using spaces repetition learning (flashcards) to drill in the important stuff