Fail-fast means stopping an operation as soon as an unexpected error appears. Early failure shortens the feedback loop, reduces repair cost, and prevents corrupted state from spreading into persistence. section 8.1
Exceptions commonly implement fail-fast behavior: they interrupt normal control flow, reach the highest execution level, and allow the application to log, shut down, or restart the operation. section 8.1
Reject an invalid state before changing it
A User method can require CanChangeEmail() to succeed before continuing. If a controller skips that precondition, the application crashes on its first execution rather than silently producing a corrupted result. section 8.1
Apply the principle where incorrect assumptions must become visible immediately:
- Validate preconditions; a failed precondition signals a bug in the assumed application state. section 8.1
- Validate configuration during startup and throw when required data is incomplete or incorrect. section 8.1
- Prefer fast failure over a low-value integration test when the defect will manifest immediately and cannot corrupt data. section 8.1

