Distributed Systems, System Design Concepts, Google Spanner, System Design Interview, Distributed System Design.
have a strategy to determine the correctness of the system. We use safety and liveness conditions for this purpose. Safety means that nothing bad ever happens, and liveness means that something good eventually happens. If you want a more formal definition of safety and liveness, see the paper