While we talk a lot about how distributed systems and databases work, we also need to understand the problems, faults, and failure scenarios we will face.
Understanding all the trouble closes the loop in our knowledge and helps us build "better" systems.