If I had stats and figures to back this up, I’d turn it into a proper post. As it stands, I only have anecdotes and gossip to speak from:
You would assume that people do live collaborative work on the same document. In practice, they get on a video call and one of them edits, the rest watch.
My memory of something Sunil Pai once said
I really like stateless systems with few moving parts. Static sites are so simple, I can host hundreds of them for free. I adore edge functions of all kinds (especially Cloudflare Workers) – being able to spin up microseconds of cloud compute on demand is lovely. Object storage like S3 is so cheap, people choose to build entire databases atop it. We now have serverless streams that I expect to be similarly amazing.
Realtime sync is often more complicated. I won’t deny that it’s cool to make a change in one tab, and watch the app update in a different tab/window/device, but recently I’ve been asking “is that really necessary?”. Do you really need to provision stateful servers and always on sync systems just to make people’s cursors move around a screen in realtime?
Figma is the poster child of realtime syncing, they spent ~3 years designing the whole thing. You’ll hear some people say that this let them beat Adobe and Sketch in the design tool arena. I don’t buy this narrative. The decisive feature was “share your design files with a URL”, not the ability for two people to move rectangles around together.
To me, the need for realtime editing in applications is greatly exaggerated. Think about how rare it is to:
- get two people to be in the same place at the same time
- have a task where more than one person makes changes at a time
- want other people peering over their shoulder while they work
And that’s if your synced app is multiplayer at all. For many apps, the only person I’m collaborating with is myself. I’m certainly not holding my phone and laptop open at the same time, frantically typing into each, expecting edits to sync across as I do so. If we have a future where more people make apps for themselves, it would be nice if they used cheap, simple systems to move data around. Sync is good, it doesn’t always have to be live.
But with agents, things might change. They are unrelenting daemons, ready to join in at a moment’s notice, and stay working for as long as you pay them to. I can imagine applications where having them keeping up with realtime changes is a big deal. Especially if there’s multiple agents all working really fast. They might just be the killer app for sync engines.