The end-to-end argument places failure handling in the lowest layer that can detect and mitigate a failure correctly and completely. Layer boundaries depend on the system perspective: a database may be the application layer above an operating system and hardware. section 3.3.3
Two failure messages
InsufficientFunds is an application-level failure because only the application can interpret and resolve it. CouldNotConnect is a platform-level failure because the platform can mitigate it by reestablishing the connection. section 3.3.3
Figure 3.10 Application-level vs. platform-level failure
Compare application-level and platform-level failures across the layered system. section 3.3.3
