cloudparts

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
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 →

How it fits with other technologies

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

  1. 2011

    TightDB founded; Y Combinator summer batch

  2. 2014

    Public launch as Realm

  3. 2015

    $20 million round; Realm runs on over 100 million devices

  4. 2019

    MongoDB agrees to acquire Realm for $39 million

  5. 2024

    MongoDB deprecates Atlas Device Sync and the Realm SDKs

  6. 2025

    Device Sync reaches end of life on 30 September

Sources6 · facts checked 24 October 2026

Improve this page on GitHub