npalli 2 days ago

Something seemed off about this list as it suggested “rocket science” in this field is MapReduce from Google. Turns out this list is from 2014 [1], reader beware, as things have changed since then.

[1] https://news.ycombinator.com/from?site=dancres.github.io

  • otras 2 days ago

    This definitely puts it into context — it has been ten years since this list came out, and at that time, it had been ten years since the MapReduce paper came out.

macintux a day ago

Here’s my ~10-year-old meta-list of distributed systems reading lists. I’ve added this one about 10 years too late, and heaven knows how many of the entries on my list survive.

https://gist.github.com/macintux/6227368

antonalekseev 2 days ago

See also https://ferd.ca/a-distributed-systems-reading-list.html, which mentions the OP list.

  • emmanueloga_ 2 days ago

    I think it's important to clarify who these lists are really for. They're not meant for people simply looking to "learn distributed systems," in my opinion. These might help those pushing the envelope or looking for new approaches.

    For the rest of us, imagine asking how to solve quadratic equations and getting 100 papers on category theory.

    > See also https://ferd.ca/a-distributed-systems-reading-list.html, which mentions the OP list.

    Fred Herbert’s list, more up-to-date than OP’s, isn't even complete according to him. He mentions "Designing Data-Intensive Applications" as essential but suggests something like: "you need to read a bunch of papers first to _really_ get it." (My paraphrasing :-). It can feel like gatekeeping when lists like these are framed as prerequisites for understanding.

    Thanks to decades of others' work, we don’t need to read 100 nanokernel papers to be effective Linux users. And while building a good production ready OS from scratch is still hard, 99% of us don’t need to—we just need to get proficient with the tools that already exist. The same goes for distributed systems—it’s does not have to be that hard unless you're trying to push the envelope.

    Here are some ideas for SWEs looking to get practical experience rather than diving deep into the research:

    * Build something with NATS [1] or YugaByte [2].

    * Try a hands-on tutorial like [3].

    * Read Designing Data-Intensive Applications. Some books get better with each re-read, and this is one of them. So go ahead and read it, even if you haven't read 100 papers yet. When you hit sections you don’t understand, ask questions and get help. Feel free to skip the massive reading lists. :-). (to be fair Herbert recommends this approach too, at the very end of his post).

    --

    1: https://nats.io/

    2: https://www.yugabyte.com/

    3: https://pragprog.com/titles/tjgo/distributed-services-with-g...

tucnak 2 days ago

And yet no mention of CRDT technology?

  • mtrovo 2 days ago

    it's from 10 years ago