Thank you. This is a very insightful comment that pinpoints something I could never quite put my finger on.

So the issue is that you need a git pull or something like it to prevent branching. Chat etc... achieves this through real-time state management. In an async setting you need something else.