RealmDeprecated
An embedded object database for mobile apps, a replacement for SQLite and Core Data, whose cloud sync service MongoDB shut down in 2025.
- What it is
- NoSQL databases
- Used for
- Cross-platform mobile apps
- Type
- Open source
- Made by
- MongoDB, Inc.
- License
- Apache 2.0
- Status
- Deprecated. MongoDB deprecated the Realm SDKs and Atlas Device Sync in September 2024 and shut sync down on 30 September 2025; sync-free community releases of the local database continue.
- Facts checked
- 24 October 2026
What it is
Realm runs inside the app, on a phone, tablet, watch or desktop, and stores objects instead of tables. You declare classes in Swift, Kotlin, C#, JavaScript, Dart or C++, and Realm persists them to a file on the device without an ORM in between. Objects are live: when one is changed anywhere in the app, every reference to it sees the new value, and queries and objects can notify observers, which SwiftUI and other UI frameworks use to redraw. Writes happen in transactions, the file can be encrypted, and because the data is local the app works the same offline.
All the SDKs share one C++ storage engine, Realm Core. Until 2025 they could also connect to MongoDB Atlas Device Sync, which kept the on-device database in sync with a MongoDB Atlas cluster and with other devices, together with App Services sign-in, functions and permission rules.
MongoDB announced in September 2024 that it was deprecating Atlas Device Sync and the Atlas Device SDKs, and on 30 September 2025 sync, App Services authentication and the SDKs reached end of life. MongoDB said the on-device database would continue as an open-source project, and each SDK has a community branch with the sync code removed, released for Swift as version 20 (20.0.6 in September 2026). MongoDB engineers still review and release changes, but there is no new feature work, and apps that synced must move to another service.
Why teams pick it
- Objects map straight to the language’s classes, with no ORM or SQL
- Live objects and change notifications that suit reactive UIs such as SwiftUI
- Local-first: data is on the device, so apps work offline, and the file can be encrypted
- One core engine behind SDKs for Swift, Kotlin, .NET, JavaScript, Dart and C++, under Apache 2.0
Watch out for
- Deprecated by MongoDB: no new features, and its future depends on community maintenance
- The sync service is gone; apps that relied on Atlas Device Sync or App Services sign-in need a replacement backend
- A device-local database, not a server: sharing data between users needs your own API or sync
- The file format and APIs are Realm’s own, so moving to SQLite or another store means migrating data and code
Good for
- Data model
- Objects declared as classes in the app’s language, kept live
- Transactions
- Write transactions on the local file
- Replication
- None since Atlas Device Sync shut down on 30 September 2025
- Storage engine
- Realm Core, one C++ engine shared by all SDKs, writing a local, optionally encrypted file
- Written in
- C++ (Realm Core)
- Ways to run it
- Embedded library; SDKs for Swift, Kotlin, .NET, JavaScript, Dart and C++
Alternatives
What all nosql databases have in common →Compare side by side →
TigerBeetleOpen sourceA replicated database with one fixed schema, double-entry accounts and transfers, built in Zig to record money movements at high rates with strict serializability.How it fits with other technologies
What Realm uses
Swift (RealmSwift): a class persisted as-is, written in a transaction and observed · text
import RealmSwift
class Todo: Object {
@Persisted(primaryKey: true) var id: ObjectId
@Persisted var title = ""
@Persisted var done = false
}
let realm = try Realm() // opens default.realm on the device
try realm.write {
realm.add(Todo(value: ["title": "Buy milk"]))
}
let open = realm.objects(Todo.self).where { !$0.done }
let token = open.observe { changes in // fires on every change to the result
print(changes)
}See it in a real stack
No architecture uses Realm yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2011–2025
Alexander Stigsen and Bjarne Christiansen, developers at Nokia in Copenhagen, founded TightDB in 2011 and went through Y Combinator’s summer 2011 batch. Mobile developers then stored data in SQLite or Apple’s Core Data. The company launched publicly as Realm in 2014, pitching its database as a replacement for both, and in March 2015 raised $20 million, saying it ran on more than 100 million devices. The Cocoa and Java SDKs were open source under Apache 2.0, and the core engine was later opened too.
Realm added a sync server and platform for keeping device data in step with a backend. In April 2019 MongoDB agreed to buy Realm for $39 million, citing more than 100,000 active developers and over 2 billion downloads, and sync moved to MongoDB Atlas as Atlas Device Sync, with the SDKs sold as the Atlas Device SDKs.
In September 2024 MongoDB deprecated Device Sync and the SDKs, with end of life on 30 September 2025. The local database lives on in sync-free community branches.
Why it’s built this way
- Objects, not tables
- App code already works with objects. Persisting the classes themselves removed the mapping layer that SQLite needs and that Core Data adds.
- Live objects
- Instead of copying rows into objects that go stale, every reference reads the current data, so UIs can subscribe to changes rather than re-query.
- A shared C++ core
- Realm Core, the C++ storage engine, sits under every language SDK, so the same database file and query engine work on iOS, Android, desktop and the server.
Timeline
- 2011
TightDB founded; Y Combinator summer batch
- 2014
Public launch as Realm
- 2015
$20 million round; Realm runs on over 100 million devices
- 2019
MongoDB agrees to acquire Realm for $39 million
- 2024
- 2025
Device Sync reaches end of life on 30 September
- Y Combinator: Realm (founded 2011, Summer 2011 batch, founders)
- VentureBeat: Mobile database startup Realm picks up $20M (Mar 2015)
- MongoDB press release: MongoDB strengthens mobile offerings with acquisition of Realm (Apr 2019)
- MongoDB docs: Atlas Device SDKs deprecation
- realm/realm-core on GitHub (created 2011, Apache 2.0)
Sources6 · facts checked 24 October 2026
- realm/realm-swift README (deprecation notice, live objects, encryption, offline use, community branch)
- MongoDB docs: Atlas Device SDKs (Realm as the persistence layer, SDK languages)
- MongoDB docs: Atlas Device SDKs deprecation (end of life 30 September 2025, community branches)
- realm/realm-js discussion #6884: Device Sync deprecation (maintenance after deprecation)
- realm/realm-swift commits (Release 20.0.6, September 2026)
- Realm open-source projects (realm.github.io)