Replicant

Conflict-Free Sync for Mobile Apps

Replicant is a new approach to mobile sync which finally makes it easy — pleasant, even — to offline-enable your mobile application.

Who cares about offline? You should. Because it makes your app instantaneously responsive and reliable under all network conditions, including no network. It banishes spinners and hangs from your user experience. Every interaction with your app feels local and fluid, with changes synchronized in the background when there is connectivity.

Team

Replicant is led by Aaron Boodman, an engineer with over fifteen years of experience working on sync at Google and as a founder of venture-backed startups.

The design is made possible by recent academic research and is scheduled for review by Jepsen, LLC in 2019.

Features

  • Local-first. All reads and writes go to a local on-device database by default, which is synchronized with the server continuously in the background.
  • Conflict-free. There is zero manual conflict resolution, by either developers or users, for virtually all cases.
  • Transactional. Arbitrarily complex transactions are supported and are guaranteed to execute consistently and with the same results on all nodes.
  • Easy. The data model is a document store, like Firestore, RethinkDB, Mongo, or FaunaDB. Transactions are executed serially, like in a local database. The query model is a SQL subset. There is little new to learn. You use Replicant like you use any other local datastore, except it also syncs with the server and all other clients.
  • Compatible. Keep your existing server-side stack and database. Replicant runs on the client, along with a small service whose only job is to replicate data between the client and your backend.

Technology

Replicant builds on recent academic research to transform a disconnected set of single-node transactional databases into an AP Causal-Consistent distributed database. This has been proven to be the highest consistency level possible in a disconnected system. But until now, there have been no commercial systems that implement it for offline synchronization.

Replicant is technically a CRDT, but it differs from currently popular CRDTs in that it: (a) permits arbitrary operations over a rich data model, and (b) guarantees transactional consistency.

What this means is that developers don’t need to adapt their problem to fit a constrained data model. They can use natural data structures and simple sequential algorithms, without giving up the key promise of CRDTs: guaranteed convergence.

There is a full design document available to early adopters.

 

Interested?

Replicant will be generally available in mid-2020, but we are currently accepting beta users on a first-come first-served basis.

Cost

  • $200 refundable deposit to hold your spot
  • $200/month once you begin using Replicant

The Replicant beta supports iOS and Android mobile apps written in Objective-C, Swift, Java, Kotlin, or React Native. Support for desktop apps, the web, and other environments will follow.

Copyright 2019, Rocicorp.