June 9, 2026
Sync fight: now with feelings
CRDTs merge concurrent edits. Why not concurrent creation?
Offline note edits went invisible, and the comments instantly turned into a philosophy fight
TLDR: Loro rolled out a fix for a frustrating sync problem where two offline users could both type into the same note and one person’s work would seem to disappear. The comments stole the show, with readers arguing over whether software can ever truly guess what people meant when they created things at the same time.
A nerdy syncing bug somehow turned into full-blown comment-section theater. The setup sounds simple enough for anyone who’s ever used a notes app: two people are offline, both type into what they think is the same empty note, they reconnect... and suddenly one person’s writing seems to vanish. The data isn’t actually deleted, but to normal humans that distinction landed somewhere between “comforting” and “absolutely not.” Community reactions zeroed in on that gap fast: if users can’t see their text, many argued, that’s just data loss with better public relations.
The article’s big fix is that Loro now gives these child items a stable identity based on where they belong, not on who happened to create them first. In plain English: if two people mean to make the same shared box, the system should stop acting like they made two unrelated boxes. That got a lot of nods from readers who called the old behavior a classic “computer says technically no problem” moment.
But the comments also got delightfully spicy. The hottest take, from atoav, was basically: maybe this can’t ever be solved in a truly satisfying way, because software can’t magically read human intent. If two people create different content at the same time, should an app combine both, pick one, or invent some smarter middle ground? That kicked off the real drama: Team “just show both” versus Team “there is no perfect merge, only compromises.” The vibe was half computer science, half relationship counseling, with a side of “your notes app is gaslighting you.”
Key Points
- •The article describes a CRDT problem where concurrent creation of child containers at the same map key can leave one user’s edits invisible after synchronization.
- •It says the hidden container’s data is still present in history, but only one container is visible in the current document state, making the issue appear like data loss.
- •Loro introduces Mergeable Containers so a child container is identified by its logical position in a map instead of the creation operation’s ID.
- •The new API uses `ensureMergeable*` methods for shared child containers such as text, lists, maps, trees, counters, and movable lists.
- •The article says the prior workaround was eager initialization of child containers, but that approach is limited for schema migrations, date-based structures, and user-defined dynamic keys.