Add realtime collaboration to any app with surprising simplicityWatch Demo
Realm’s approach to realtime collaboration
Automate realtime synchronization with Realm 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
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.
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
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