Discipline of moving past happy-path thinking when designing the application-level protocols components use to communicate. For each message exchange, imagine failures at every step (before processing, after processing, on acknowledgment) and ensure both sender and receiver converge to a shared known outcome. Application protocols — not just HTTP/TCP/IP — are the meaningful contracts the team designs, and deliberate protocol thinking is how you make them handle edge cases.