Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

No, it's physically impossible. You have causal consistency across services, not within services.

https://youtu.be/lKXe3HUG2l4?t=1438



Codebase A writes data to datastore. Codebase B mutates it. Codebase A loads it back in, assuming it’s still the same.

Boom. You’ve mutated codebase A’s memory.


I would hope it's obvious that you haven't mutated A's memory, but I'll just suggest you watch the talk.


How is that any different to calling a function on a class? That's technically not class A modifying class B's memory either. B modifies it's own memory in response to a message (function parameters) from A. The message going over a network doesn't make that fundamentally different.


Function parameters aren't messages. They're shared state. I'd suggest watching the talk and reading about message passing systems in general.


“Watch this famous video” is not a great response. Many of us watched it years ago and seem to have interpreted it rather differently.


Then you interpreted it incorrectly. I'm not inclined to teach you via HN about a subject that's well documented by resources I've already linked.


I suppose if you mutate them. But we have a linter in place and a CI system that enforces it that prevents that.


There are many solutions, certainly. A network is one option, which I personally prefer, but as I said elsewhere it's a "choose the right tool for the job" kind of situation.


For all intents and purposes, you’ve mutated the memory. Sure, you haven’t mutated by reaching directly to the RAM. But the effect is still the same.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: