6 ms·
Fluid framework, for building distributed, real-time collaborative web apps
- alfonsodev 6y ago> The application you are trying to visit is currently throttled due to unusually high usage. Please try again later. edit: there is web archive version: https://web.archive.org/web/20200909053211/https://fluidframework.com/ https://web.archive.org/web/20200909053211/https://fluidfram...
- tmikaeld 6y agoOne would think that Microsoft, if any, would be able to handle a traffic spike... And to block a marketing site from more traffic feels like a complete fail. There's some info on the Github: https://github.com/microsoft/FluidFramework https://github.com/microsoft/FluidFramework Still doesn't say how it "works", like, do we need servers? How is it distributed? Is there a database-layer?..
- Kuinox 6y agoI think it's just a misconfiguration from their end.
- mgd020 6y agoThere's a decent intro here: https://fluidframework.com/docs/ https://fluidframework.com/docs/
- johnnyfaehell 6y agoHonestly, I just assumed it was someone using Azure's basic services without being ready for a massive traffic spike. I was a bit miffed but understanding. But Microsoft not being able to scale on their own cloud service seems like a massive failure.
- kreetx 6y agoHas anyone used this, what's the experience? Is this a functional reactive style front-end framework?
- bestest 6y agoThe example repos shed some light on how it's due to be used: https://github.com/microsoft/FluidHelloWorld https://github.com/microsoft/FluidHelloWorld https://github.com/microsoft/FluidExamples https://github.com/microsoft/FluidExamples
- ciconia 6y agoOMG It looks just like OLE: https://github.com/microsoft/FluidHelloWorld/blob/main/src/dataObject.ts https://github.com/microsoft/FluidHelloWorld/blob/main/src/d...
- catchmeifyoucan 6y ago> With Fluid Framework, developers can easily add multi-user interactivity to their apps — powered by the same code that drives collaboration in Microsoft 365 experiences for millions of users. https://developer.microsoft.com/en-us/office/blogs/fluid-framework-is-now-open-source/ https://developer.microsoft.com/en-us/office/blogs/fluid-fra...
- narrationbox 6y agoLooks like a CRDT/Operational Transform server/pubsub as a service. There are also some open source frameworks on GitHub which doesn't depend on Azure. https://github.com/automerge/automerge https://github.com/automerge/automerge https://github.com/share/sharedb https://github.com/share/sharedb
- sbazerque 6y agoYeah, many more in https://CRDT.tech https://CRDT.tech Incidentally, Microsoft is probably the only big tech co that could perhaps profit from dweb-style tech.
- ricardobeat 6y agoThis looks like Java or .Net spilling into JS: https://github.com/microsoft/FluidHelloWorld/blob/main/src/containerCode.ts https://github.com/microsoft/FluidHelloWorld/blob/main/src/c...
- deleted 6y ago[deleted]
- mattetti 6y agoAdding more context: Fluid uses a mix of CRDT + OT to maintain state across multiple clients. I wrote a quick high level explanation of how Fluid uses eventual consistency and why it matters for real time collaboration: https://matt.aimonetti.net/posts/2020-09-solving-real-time-collaboration-using-eventual-consistency/ https://matt.aimonetti.net/posts/2020-09-solving-real-time-c...
- panic 6y agoFrom the FAQ: > Does Fluid use operational transforms? > Fluid does not use Operational Transforms, but we learned a tremendous amount from the literature on OT. While OT uses operations that can be applied out of order by transforming operations to account for recent changes, Fluid relies on a Total Order Broadcast to guarantee that all operations are applied in a specific order. > Does Fluid use CRDT? > Fluid does not use Conflict-Free Replicated Data Types (CRDTs), but our model is more similar to CRDT than OT. The Fluid Framework relies on update-based operations that are ordered using our Total Order Broadcast to prevent conflicts. This allows us to have non-commutative operations because their is an explicit ordering. Their model sounds a lot like how Croquet (https://en.wikipedia.org/wiki/Croquet_Project https://en.wikipedia.org/wiki/Croquet_Project) used to work, where every operation is given a globally-ordered timestamp as it passes through a shared message router.