The Must-Know Fundamentals of Distributed Systems