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

Could someone explain casual consistency to me? Is it just about not showing earlier messages to someone who got blocked, or is there something more to it?


If B happened as a result of A, then every node should observe A BEFORE B. For instance, "Deleting an ex (A) and posting a relationship with a new SO (B)". If this social network wasn't causally consistent then -

Your ex may see your life update (and then be deleted).

I may be wrong, so other experts feel free to correct me.


Read this paper[1], it explains various consistency in distributed system by using baseball scores updated over different medium. [1] https://www.microsoft.com/en-us/research/publication/replica...


Why call it causal though? It seems like temporal consistency to me. What's the causation aspect?


because the thing that needs to be maintained is the causal ordering of events. For the example from TFA, block -> tweet and tweet -> block have the causal effect of the blocked user seeing or not seeing the tweet respectively. Phrasing it as causal ordering removes time from the equation, which you aren't always able to take into account with distributed systems. Causal ordering also allows for causally unrelated events to appear in any order, for example updating your bio and posting a tweet. Check out the wiki article on logical clocks for a rough starting point in delving into this topic: https://en.wikipedia.org/wiki/Logical_clock.


A more common example of causally unrelated events is two people tweeting from different parts of the world that don’t follow each other. The order these appear somewhere really doesn’t matter to anyone.


But there is no causal relationship between the two events. You didn't tweet because you blocked the person, or block them because you tweeted.

This blog post is really about sequential consistency.


no it isn't. The two events are linked by a effect, ie switching the order of events has a different effect. They are causally linked, but not in the a => b sense. It's not about sequential consistency because for many other sets of events, the order does not matter and thus doesn't have to be enforced.



Causal, not casual :)





Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: