6 ms·
Tooling for developing real-time collaborative remote working environments is about to take of dramatically. CRDTs [0], while complex to work with untill recen
by samwillis 4y ago
Tooling for developing real-time collaborative remote working environments is about to take of dramatically.
CRDTs [0], while complex to work with untill recently, are now so much easer for developers to use with toolkits such as Yjs[1] and AutoMerge[2]. SAAS and PAAS companies proving tooling around these, enabling developers to easily build collaborative tools for specific niches and verticals are going to explode into the market.
Every 5-ish years there is a big “new” database tech that receives massive investment for both enterprise and small business. Real time CRDT based data stores are the “next big thing” - in my view.
CRDTs are often only talked about in relation to rich text editing, but “generic” CRDTs that represent “standard” data types (think JSON), and basic operations to them (inset, edit, remove) are able to represent so much more. You can use them for building so many CRUD type business apps, and by using a CRDT as your base data representation you get conflict free collaborative (and offline) editing for free.
The nice thing about both Yjs and AutoMerge is that they provide both Rich Text and JSON-like data types, covering 95% of what people would need for building business apps.
0: https://en.m.wikipedia.org/wiki/Conflict-free_replicated_data_type https://en.m.wikipedia.org/wiki/Conflict-free_replicated_dat...
1: https://github.com/yjs/yjs https://github.com/yjs/yjs
2: https://github.com/automerge/automerge https://github.com/automerge/automerge
- ivanvanderbyl 4y agoAnother project to add to the list is Replicache https://github.com/rocicorp/replicache https://github.com/rocicorp/replicache
- cvccvroomvroom 4y agoDid this 20 years ago in an FMMS. It's not worth it. It's better to have an arbiter source of truth that can guarantee ACID principles with transactions rather than introduce merge conflicts or lose transactions for lack of synchronization. The internet is almost everywhere, so use that rather than provide academic features that cause more headaches than they solve. SQL databases with transactions and row locks are invaluable inventions. Also, if you want to collaborate, synergize, innovate, and revolutionize consider OTs. They're a known quantity. Handling merges of data is fraught with landmines. You can't sell 2 of something to the same person offline and know if they wanted 1 or 2. Plus, giving an end user the ability to resolve merge conflicts is asking for theft and fraud.
- throwawaymaths 4y agoActually the theory to do this correctly didn't exist 20 years ago, so things truly are different now.
- neon_electro 4y agoSources and references help you make your argument shine!
- samwillis 4y agoNot a “proper” reference but according to Wikipedia (https://en.m.wikipedia.org/wiki/Conflict-free_replicated_data_type https://en.m.wikipedia.org/wiki/Conflict-free_replicated_dat...): > The CRDT concept was formally defined in 2011 by Marc Shapiro, Nuno Preguiça, Carlos Baquero and Marek Zawirski. Now, that’s not to say the gp wasn’t referring to using some of the CRDT concepts before they were defined collectively under that banner.
- deleted 4y ago[deleted]
- b20000 4y agoi don’t want to realtime collab. i want to concentrate and get my shit done. slack is a nightmare for example. there is always a fool constantly interrupting your flow.
- clavalle 4y agoAgreed. I chunk slack messaging the same way I do email. I have two channels that I'll take realtime notifications on, but if someone raises those flags without very.good.reason, they'll hear about it. I generally won't see anything on those channels more than once a month. For special 'war room' projects I'll set up a special channel that I'll pay attention to for real time colab, but those are very unusual situations with a well defined end date.
- avel 4y agoYou might be missing the point. Some examples of realtime collaboration in the world of remote work can be: google docs / sheets, project boards (trello, miro), whiteboarding (jamboard, zoom), design/drawing, or even coding (VS code sharing).
- b20000 4y agoi don’t. like i said, i want peace and quiet to focus on my work.
- bawolff 4y ago> even coding (VS code sharing). Damn that sounds terrible. I'll give points for google docs, but i am unconvinced by the rest.
- jon_adler 4y agoCollaborative content creation in tools like Miro/Lucid can work well, especially when on an audio call at the same time. It’s the best execution of the whiteboard experience in a remote working environment that I have experienced so far.
- Existenceblinks 4y agoSync work process is inefficient. 80% of the time I would define work process to be asynchronous e.g. with git branch, pull request, docs, backlogs. This is efficient collaboration. Real-time collaborative tool is a thing but not going to be big. Ideally, I would go 100% async work if possible.
- bmitc 4y agoFigma is a pretty good example of real-time collaboration while still maintaining an asynchronous primary workflow.
- Existenceblinks 4y agoPair designing could happen while meeting where there's not only approval process but also some tweaks here and there. In normal workflow, work should be done as single responsibility (feature) per designer. Synchronous workflow within tool is not that better than it's done by talking (letting 1 person doing it)
- jpeg_hero 4y agoI like where this is going. I feel append-only architectures are under appreciated.