zlacker

[parent] [thread] 12 comments
1. ekjhgk+(OP)[view] [source] 2025-12-05 22:43:29
You mean like UDP which also works amazing?
replies(4): >>podgie+L1 >>Ethery+23 >>setham+q51 >>mrkeen+tp1
2. podgie+L1[view] [source] 2025-12-05 22:55:53
>>ekjhgk+(OP)
UDP doesn’t guarantee exactly once processing.
replies(1): >>ekjhgk+wf
3. Ethery+23[view] [source] 2025-12-05 23:04:58
>>ekjhgk+(OP)
UDP gives you practically no guarantees about anything. Forget exactly once processing, UDP doesn't even give you any kind of guarantees about delivery to begin with, whether delivery will happen at all, order of delivery, lack of duplicates, etc, nothing. These things are so far from comparable that this idea makes no sense even after trying real hard to steelman it.
replies(1): >>ekjhgk+le
◧◩
4. ekjhgk+le[view] [source] [discussion] 2025-12-06 00:31:16
>>Ethery+23
UDP plus increment means that the client can request a snapshot to be re-sent. This mechanism is used in financial exchanges and works amazing.

This illustrates that the webdevs who write articles on "distributed system" don't really understand what is already out there. These are all solved problems.

replies(2): >>jasonw+Fj >>vouwfi+281
◧◩
5. ekjhgk+wf[view] [source] [discussion] 2025-12-06 00:40:35
>>podgie+L1
See my response to your sibling.
◧◩◪
6. jasonw+Fj[view] [source] [discussion] 2025-12-06 01:21:42
>>ekjhgk+le
Or perhaps you've simply not learned the basics of actual distributed systems literature, and so are ignorant of the limitations of those solutions?
7. setham+q51[view] [source] 2025-12-06 11:45:31
>>ekjhgk+(OP)
I'd tell you a joke about UDP, but you might not get it.

More seriously, you are confident and very incorrect on your understanding of distributed systems. The easiest lift, you can fix being very incorrect (or at least appearing that way) by simply changing your statements to questions.

Personally, I recommend studying. Start with the two generals problem. Read Designing Data Intensive Applications; it is a great intro into real problems and real solutions. Very smart and very experienced people think there is something to distributed systems. They might be on to something.

◧◩◪
8. vouwfi+281[view] [source] [discussion] 2025-12-06 12:14:32
>>ekjhgk+le
You are 100% correct. UDP can be used to solve this problem, in fact, UDP can be used to solve any (software) networking problem, because its kind of what networking is.

The thing that webdevs want to solve is related but different, and whether the forest is missed for the trees is sometimes hard to tell.

What webdevs want to solve is data replication in a distributed system of transactions where availability is guaranteed, performance is evaluated horizontally, change is frequent and easy, barrier to entry is low, tooling is widely available, tech is heterogeneous, and the domain is complex relational objects.

Those requirements give you a different set of tradeoffs vs financial exchanges, which despite having their own enormous challenges, certainly have different goals to the above.

So does that mean this article is a good solution to the problem? I'm not sure, its hard to tell sometimes whether all the distributed aircastles invented for web-dev really pay out vs just having a tightly integrated low-level solution, but regardless of the hypothetical optimum, its hard to argue that the proposed solution is probably a good fit for the web dev culture vs UDP, which unfortunately is something very important to take into account if you want to get stuff done.

replies(1): >>ekjhgk+qd1
◧◩◪◨
9. ekjhgk+qd1[view] [source] [discussion] 2025-12-06 13:09:14
>>vouwfi+281
> in a distributed system of transactions where availability is guaranteed, performance is evaluated horizontally, change is frequent and easy,

Isn't that the situation inside a CPU across its multiple cores? Data is replicated (into caches) in a distributed system of transactions, because each core uses its own L2 cache with which it interacts, and has to be sent back to main memory for consistence. Works amazing.

Another even more complex system: a multi CPU motherboard supporting NUMA access: 2 CPUs coordinate their multiple cores to send over RAM from the other CPU. I have one of these "distributed systems" at home, works amazing.

[1] https://en.wikipedia.org/wiki/Non-uniform_memory_access

replies(1): >>vouwfi+Mf1
◧◩◪◨⬒
10. vouwfi+Mf1[view] [source] [discussion] 2025-12-06 13:28:20
>>ekjhgk+qd1
Indeed, again you are right. I've gone through the same motions as you trying to understand why the webdev people make this so complicated.

For your specific question here: NUMA & cpu cores don't suffer from the P in CAP: network partitions. If one of your CPU cores randomly stops responding, your system crashes, and that's fine because it never happens. If one of your web servers stops responding, which may happen for very common reasons and so is something you should absolutely design for, your system should keep working because otherwise you cannot build a reliable system out of many disconnected components (and I do mean many).

Also note that there is no way to really check if systems are available, only that you cannot reach them, which is significantly different.

Then we've not even reached the point that the CPU die makes communication extremely fast, whereas in a datacenter you're talking milliseconds, and if you are syncing with a different system accross data centers or even with clients, that story becomes wildely different.

replies(1): >>ekjhgk+Gk1
◧◩◪◨⬒⬓
11. ekjhgk+Gk1[view] [source] [discussion] 2025-12-06 14:13:41
>>vouwfi+Mf1
> If one of your CPU cores randomly stops responding, your system crashes

Are you sure about that? I actually have no idea but I'm surprised by your claim.

replies(1): >>vouwfi+e13
12. mrkeen+tp1[view] [source] 2025-12-06 14:58:01
>>ekjhgk+(OP)
TCP (which you recommended - but doesn't just "solve distributed programming) is only amazing to the extent that it solves UDP's problems.
◧◩◪◨⬒⬓⬔
13. vouwfi+e13[view] [source] [discussion] 2025-12-07 07:47:56
>>ekjhgk+Gk1
I don't think I'm qualified to answer the question, and I also think it depends on terminology where maybe 'core' is the wrong thing to say, but regardless: my general point is that the assumptions that hold for CPUs don't hold for webservices, and that's where the design ethos between them splits.
[go to top]