decentralised shared state

m-ld keeps data live and sharable.

With m-ld, data is just local state, which is shared to where it's used—on mobiles, in browsers, in microservices, anywhere.

At the heart of m-ld is a decentralised protocol for distributing state among clones. Using m-ld, every app instance has read-write access to the shared state via its local clone, with zero network latency. Changes to the state are propagated to all other app instances, so they are all eventually consistent.

The Developer Preview is ready! - Read the news - Dive in

why?

Offline and collaboration features

Consumer and enterprise apps are frequently required to make data available for editing by multiple users instantly, reliably, and securely, even when they're offline. Cloud databases entrust the data to a third party, and make users wait while changes are processed. Custom solutions are expensive and fraught with hard-to-detect bugs.

Fulfilling these needs is a difficult problem, and a distraction from your focus on the business functionality of your software. In the end, most apps just lock the data that is being edited so no-one else can work on it.

m-ld is different. It starts from the position that the most important thing about this kind of data is the freedom to edit it safely, live.

Composing knowledge from events

In any multi-actor system, like a team of collaborating robots, every actor must make decisions based on some current knowledge: a local world model, or an evolving set of goals. It may not be possible to centralise that knowledge – for example if the actors can lose their network connection; or the latency or locking behaviour of a central database is not acceptable.

If the contributing data events are frequent, for example from sensors, every update has to be synthesised by every actor into their knowledge. This can rapidly become a computational headache.

m-ld can help. The knowledge itself is maintained as convergent shared state, and each actor only needs to apply their own updates. The rich query syntax then lets them act upon what they need to know, when they need to act.

Decentralise all the things!

Consumer concerns about personal data include increasing awareness of data ownership. Centralised data management may always have its place where ownership is also centralised. It should never have been the only choice for everything.

But decentralised data is hard. Keeping data on devices risks losing it. Deciding who owns what, even if someone else is working on it, requires complex webs of trust. Deploying data replicas can be an unbounded system administration headache.

m-ld frees your data. It uncouples ownership from location. So it supports apps that keep control over data while still being able to easily and safely keep it backed-up in a choice of locations.

m-ld source code licensed MIT. Website content licensed CC BY NC SA 4.0. Icons by xnimrodx from flaticon.com. Delivered by Vercel.