Realm and Atlas Device Sync end of life
As MongoDB’s documentation sets out, the Atlas Device SDKs were deprecated as of September 2024, and they reached end of life and were removed on September 30, 2025. The SDKs had two parts: the on-device database, which continues as an open-source project, and Atlas Device Sync, which apps had to replace or remove before that date.
Other App Services features went with them. MongoDB’s deprecation pages say that App Services authentication and user management, which the Device SDKs were the main entry point for, is no longer available after the SDKs’ end of life, and that data access permissions (rules and roles) and the App Services wire protocol are deprecated too. Database triggers remain available in the Atlas UI.
For the database, MongoDB points to community branches of the C++, Flutter, Kotlin, .NET, JavaScript and Swift SDKs that remove the Device Sync code. The Realm JS repository states that Realm JS and Realm Core are published under the Apache License 2.0, and that a version without sync features can be installed from community on npm or taken from the community branch.
Replacing Realm Device Sync features
A Realm app with Device Sync typically needs a replacement for each thing it leaned on: a local database with queries, automatic two-way sync of that data with MongoDB Atlas, permissions enforced by App Services, and App Services sign-in. They do not have to come from the same place.
MongoDB’s Device Sync deprecation page lists alternative providers: Ditto, PowerSync, ObjectBox, AWS AppSync, HiveMQ, Ably, Parse and Cedalo. For the most common need, getting MongoDB data onto devices and back, a sync engine such as PowerSync, which supports MongoDB as a source database, is the closer replacement.
Realm sync features Offline Protocol replaces
Of what a Realm sync app used, Offline Protocol replaces the part where nearby devices stay in step while offline and partly covers permissions. It does not replace the local database or two-way sync with MongoDB Atlas, and sign-in is a separate product, OfflineID.
Offline Protocol is a mesh SDK in the app on each device. In version 0.30.0 it is a React Native native module for iOS and Android, with a Rust core on crates.io, a Python package on PyPI, a Java package on Maven Central, a C API, early native Swift and Android packages and a preview Flutter plugin. Devices discover each other over Bluetooth LE, open MLS-encrypted sessions and groups, and exchange messages and replicated documents. Each device edits its own copy of a document, and the copies merge deterministically when devices reconnect, with no server involved.
It has no query language and does not sync a backend database. Its documentation describes your existing database as the system of record for records outside the shared scope, and leaves enrollment and authorization to the application.
| What a Realm sync app used | Replaced by Offline Protocol? |
|---|---|
| Local database with queries | No. Keep Realm’s community database, or another local store |
| Two-way sync with MongoDB Atlas | No. Use a backend sync tool or your own API |
| Nearby devices staying in step while offline | Yes, through replicated documents over Bluetooth LE |
| App Services permissions | Partly. Membership of an encrypted space decides which devices receive a document; your application still enforces business permissions |
| App Services sign-in | Separate product. OfflineID provides hosted sign-in, metered per monthly active user |
Backend sync tools for Realm apps
A backend sync tool from MongoDB’s list fits a Realm app better when:
- The app’s main need is MongoDB data on each device and changes flowing back to Atlas.
- Devices reach the network often enough for changes to travel through a server.
For an app whose main need is this, a tool from MongoDB’s list will serve it better than Offline Protocol.
Offline Protocol for Realm apps
Offline Protocol is the better fit for a Realm app when:
- Devices used together, such as handhelds on one shift or tablets in one vehicle, need to share state or hand off work when the backend is out of reach.
- You also want encrypted messages or service calls between those devices.
- You would rather keep your current database and backend as they are.
The saving is in the daily work that stays local: a handoff or a checklist edit between two nearby devices goes over Bluetooth LE without a server round trip, and that local traffic is never metered on any Offline Protocol plan. The mesh SDK is free under AGPL-3.0-only when the app meets its obligations; closed-source and App Store apps need the commercial license, which is annual with no published price.
Realm and Offline Protocol in one app
An app can keep Realm’s community database as its local store and add Offline Protocol for device-to-device state. The two are independent: the app reads a merged document from Offline Protocol and writes what it needs into Realm, or the reverse. Keep each record’s source of truth in one place, so the app never has to reconcile the same record from two directions.