|
|
|
|
|
by tyri_kai_psomi
2359 days ago
|
|
In my thinking, I think of an endpoint as something at either end of the communication channel (NATS in this case) where it is effectively terminal. Usually this is where the application logic lies. Dereck Collison (creator of NATS) brings this up in many of his talks about NATS, but I think the source of his thinking might come from “End-to-End Arguments in System Design” by Saltzer, Reed, & Clark. The core of it is this point: "Functions placed at low levels of a system may be redundant or of little value when compared with the cost of providing them at that low level." That is, in order get that message redundancy or exactly once delivery, or message persistence, you pay a high cost, and you may be better off delegating to the endpoints. This blog provides a good overview https://blog.acolyer.org/2014/11/14/end-to-end-arguments-in-... Here is the original paper http://web.mit.edu/Saltzer/www/publications/endtoend/endtoen... |
|