Nice to see this, and completely agree with the sentiment. There is a lot of academic stuff, which is great but not always easy to evaluate or apply, and there is also a lot of harrumphing about how distributed systems are really hard without going into much in the way of details about how to actually evaluate and approach the problem.
> [...] there is also a lot of harrumphing about how distributed systems are really hard without going into much in the way of details about how to actually evaluate and approach the problem.
So true. Also – I've been involved in a few contexts, tangentially or otherwise, where it seemed to me that there was a root problem that no one quite understood. For reasons, that meant it had to be solved with a distributed system. Now there are more problems, because "distributed systems are really hard."
(N.B. I'm not deriding that phrase, or doubting it's accuracy; just saying that it's also used as a way to shy away from not having a clue what problem you're trying to solve in the first place.)
Perhaps one of the consequences of getting information about programming topics mostly through twitter or other quick one take sources ;)
More seriously, when I started digging into distributed systems I just started picking up papers and reading and asking questions. It was definitely a meandering path until I synthesized, maybe after 1 year, what it was all about. Reading Paxos one week and DyanmoDB the next week made it tough to see the bigger picture. I think this survey post would have been really helpful to me in the past.
Which is fine, but not everyone has the time or inclination for that. Sometimes academic papers leave out lots of important practical details, or don't make a good connection with how a system might look in the real world.
I think there's some room for a few good books that fill that space, although perhaps they exist and I'm not aware of them.