End-to-End Arguments in System Design
This paper asks where a system should place reliability, delivery, security, and duplicate-suppression guarantees. Read it to see why a lower layer can make failures rarer yet still cannot certify the application result, and why the final check belongs at the endpoints that understand what success means.
Reading focus: Why packet checks and local retries cannot replace a checksum that covers the file from source storage through destination storage. How lower-layer reliability can improve performance without becoming the source of application correctness. Why the right endpoints change with the application, and why end-to-end is a design argument rather than a ban on smart networks.
ACM TOCS, 1984. Saltzer, Reed, and Clark. 30 min read, easy difficulty.