The End-to-End Argument, Four Decades Later
Every layered system, whether it is a network, an operating system, or cloud infrastructure, has to answer the same question: where should each function live? Should encryption happen in the network or the application? Should retries happen in TCP or in your code? Should duplicate suppression happen in the transport layer or the endpoint?
The end-to-end argument, laid out by Saltzer, Reed, and Clark in 1984, is one of the most influential answers to that question. The short version: many functions belong at the application endpoints, not in the lower layers, because the lower layers usually can't do them completely enough to remove the need for the application to do them anyway.
In this article, I'll walk through what the end-to-end argument actually says, why it matters, and where it holds up today.
This post is a summary and critique of the original paper: "End-to-End Arguments in System Design" by...
Copyright of this story solely belongs to hackernoon.com. To see the full text click HERE