4 ms·
> The Internet is designed on an end-to-end principle Yes, this is true, and the end-to-end principle is great. But it's not always straightforward to follow,
by uluyol 5y ago
> The Internet is designed on an end-to-end principle
Yes, this is true, and the end-to-end principle is great. But it's not always straightforward to follow, and certainly is not a religion. In the end, no one cares about the end-to-end principle. They want systems that are flexible, robust, and high performance. In some sense, it's a lot like simplicity. You try to and make your design as simple as possible, but sometimes, you have to have complexity. It's not ideal, but it's not a deal breaker either.
Additionally, you have to ask the question: what is an endpoint? "A" server, or can a distributed system be seen as an endpoint? After all, a single server is a bunch of independent components communicating with one another (via infinity fabric, PCIe, etc), so why would it matter if we spread those components across machines (and spoke RPCs, RDMA, whatever)? To me, a service running in a data center with a load balancer in front is "an endpoint" and no real violation of the end-to-end principle is taking place.
I think extending the definition of "endpoint" to everything behind a CDN is a stretch too far, but ultimately, I think "endpoint" isn't really defined well-enough to be the unit we talk about.
- inopinatus 5y agoOn the contrary, these are not muddy grey area topics that are open to barnum statements, gaslighting, and misrepresentation, such as: > In the end, no one cares about the end-to-end principle This assertion couldn't be more wrong. I care; many others care; caring about the architecture of the Internet did not die with John Postel. > you have to ask the question: what is an endpoint? No, we don't: it's covered in networking 101. Any party in a layered protocol whose interactions are opaque to the layers below and transparent to the layers above. And they're defined by those interactions, not by their implementation. A CDN is a forward caching proxy for content layered over HTTP, and that's all that matters when it comes to realising their emergent properties. Don't be hypnotized by the shiny dangly extras that the providers wave around hoping to distract attention from what they actually offer, or why they do it, or the consequences.
- uluyol 5y agoI didn't mean to offend, sorry if my statement rubbed you the wrong way. All I'm saying is that users of a system don't think about design principles, they are there for the developers and operators to manage complexity and meet higher-level objectives. They can do this even if they are not followed 100% perfectly.