Add realtime collaboration to any app with surprising simplicity

Watch Demo

Realm’s approach to realtime collaboration

Automate realtime synchronization with Realm Mobile Platform

Automatic realtime sync

“Live” objects update in realtime across devices and servers automatically. Write changes locally and setup simple listeners for changes from other users in just a few lines of code.

Automatic conflict resolution

Realm’s conflict resolution system ensures a predictable merging of record data, even with multiple writers, which meets the needs of almost every application.

Add to an existing app

Realm can be used as the primary datastore and realtime sync solution for your app or to simply add a new feature. There’s no need to replace your entire data model in order to use Realm.

How it all works

Painless synchronization
  • Sync services without stress

    Realm Object Server provides automatic data sync, simple authentication, access controls, event handling, and more. Deploy it anywhere, and easily integrate with existing systems.

  • Let us handle the complexity

    Apps open Realms as though they are local databases. The underlying Realm sync services run in the background to ensure management of data to/from the Realm Object Server.

  • Offline is not a problem

    Since Realm acts like a local database, your apps continue to function offline. When you’re reconnected, Realm restarts and restores synchronization.

Conflict-free zone

By default, Realm’s automated conflict resolution applies the following basic rules that ensure that both sides always end up converging to the same result, even though they may have applied the changes in a different order.

  • Deletes always win

    If one side deletes an object, it will always stay deleted, even if the other side has made changes to it later on.

  • Last update wins

    If two sides have updated the same property, the value will reflect the last update.

  • Inserts in lists are ordered by time

    If two items are inserted at the same position, the item that was inserted first will come before the other item. This means that if both sides append items to the end of a list, they will be ordered according to their insertion time.

Dead simple model updates

Need to add fields for new features? Model additions just work—no coding or migrations needed. New fields can be injected either from the server side (with the Enterprise Edition via Node.js applications that modify the models) or on the client side (by updating the application-side model and redeploying the app) and all apps will continue to work.

Try it out below

Draw app

This Swift-based demo uses a fairly simple integration of realtime features. In this app, two users are simultaneously connected to the same digital canvas. When one user draws something, the other user sees it instantly. We power this interaction through the creation and synchronization of objects representing line position and color.

  • Only share what's needed—nothing extra

    The hard part of realtime collaboration is often knowing what to share. Draw uses a very efficient sharing model: points representing line segments and data representing pen colors are the only info that needs to be shared.

  • Resolve conflicts elegantly and automatically

    Draw is a simple app where the drawing itself is a simple bitmap with one layer. Realm’s conflict resolution rules ensure that the lines drawn are always done in the order they happened, even if one user was offline.

  • Add features with additive changes to the data model

    Because the data is synchronized to all users, new features can be added to the existing app. For example, adding a shapes tool involves simply defining a new data structure to support the shapes and updating the UI.

We’d love to help you get started

Whether you’ve kicked the tires and are ready to learn more, or if you’ve still got questions, we’re here to help you make the right choice—even if it’s not us!

Watch the Webinar