Network partitions, crashes, slow dependencies, and timeout design.
Use this concept when designing systems that require the capabilities described above. Consider the trade-offs carefully against simpler alternatives before committing to the added complexity.