Distributed Systems, Communication and Data Management Patterns, Coupling, Fault Tolerance, Resiliency, and More