There does not seem to be a lot out there that bridges the gap between very theoretical papers and real world usage. There's also a lot of handwaving about how "distributed systems are hard!", which is absolutely not telling me something I did not already know.
Things like ring quorums are implemented by Cassandra and other systems, I just didn't know about them (ie Cassandra et al...) to put a face to the name back then.
One thing to do is to start reading papers, and branch out from there. There's a few major ones like the Map-Reduce Paper, BigTable, Dremel, Raft, perhaps Paxos etc... and use the citations to then deepen your understanding.
Also there's plenty of people here who can always answer questions. :)
It's easier to build distributed apps with Elixir because of Erlang's OTP. Check it out, I'm sure it'll be interesting for you.
You might also find this book helpful https://www.amazon.com/Systems-Performance-Enterprise-Brenda...
since it's essentially about how to perf measure, and debug computers in the cloud which is the annoying part of distributed systems.
Also you should keep in mind that there are some books that are specifically about doing distributed systems using a particular framework e.g. this one on using Akka on JVM https://www.amazon.com/Akka-Action-Raymond-Roestenburg/dp/16...
I never read the book, but took a course with author based on this book. It was fun and interesting; covering both basic and advanced concepts in distributed systems.
I'd recommend it.
nontrivial distributed systems are like crypto: don't roll your own primitives unless you are a masochist, fetishist, time-rich or forced to.
Andrew S. Tanenbaum and 1 more
Distributed Systems: Principles and Paradigms (2nd Edition)
ISBN-13: 978-0132392273, ISBN-10: 0132392275