Navigation

Glossary

ACID
An acronym that expands to “Atomicity, Consistency, Isolation, and Durability”. MongoDB Realm is ACID-compliant. See the Wikipedia entry for ACID for more information.
ACID compliance
  • Realm Database establishes atomicity by grouping operations in transactions and rolling back all operations in a transaction if any of them fail.
  • Realm Database establishes consistency and avoids data corruption by validating changes against the schema. If the result of any write operation is not valid, Realm Database cancels and rolls back the entire transaction.
  • Realm Database establishes isolation by allowing only one writer at a time. This ensures thread safety between transactions.
  • Realm Database establishes durability by writing to disk immediately when a transaction is committed. In the event of an app crash, for example, the changes are not lost or corrupted.
Application ID
A unique identifier for your MongoDB Realm application. Sometimes called by the shorthand “App ID”. The App ID is used to connect to your MongoDB Realm application via the client SDKs.
authentication provider
An integration of a specific authentication mechanism into MongoDB Realm’s user authentication system. MongoDB Realm provides several authentication providers – such as email/password authentication, Google authentication, and custom JWT authentication – that you can use in your client application to allow users to log in.
authentication trigger
Call a Realm Function whenever a user interacts with an authentication provider, such as whenever a user logs into your Realm app. Passes an authentication event describing the user and interaction to the linked function.
Client Reset

When using Realm Sync, a client reset is a serious error recovery task that your client app must perform if the server is restored to an older schema version than the version on the client.

For more information on how to perform a client reset, see the client guide for your SDK:

compaction
Allocation and deallocation of data within a Realm Database and/or exceeding the size of physical memory can lead to fragmentation on disk. Calling the compact method reorganizes internal data structures to reduce the storage overhead of local realms in the event of fragmentation.
custom user data
A mapped MongoDB document that stores arbitrary information about a given MongoDB Realm user. For example, you can store a user’s preferred language, local timezone, or an ID for an external service.
custom user data cluster
The linked MongoDB Atlas cluster that that contains the custom user data database.
custom user data collection
The collection where MongoDB Realm stores MongoDB documents corresponding to custom user data.
custom user data database
The database that contains the custom user data collection.
data source

A MongoDB Atlas cluster or Data Lake that is associated with your Realm app.

database trigger
Call a Realm Function whenever a document is added, updated, or removed in a linked cluster. Passes a change event describing the data that changed to the linked function.
development mode
A toggle that, when enabled, disables Realm Schema validation and automatically updates your Realm Schema to match the Realm Object Model used by synced client applications. As the name suggests, this mode is insecure and should not be enabled for production use.
embedded object

An embedded object is a special type of <Realm object> that models complex data about a specific object. Embedded objects are similar to relationships, but they provide additional constraints and map more naturally to the denormalized MongoDB document model.

For more information on how to define and work with embedded objects, see the client guide for your SDK:

event loop
A design pattern in which a central loop waits for signals from a UI or other source before updating underlying data structures. On iOS, known as a run loop. On Android, known as a Looper. Also known as the main loop or main event loop on some platforms.
external dependencies
One or more JavaScript modules from npm that you have uploaded to your Realm app. You can import and use external dependencies from any Realm Function.
function context
A global variable available that allows you to interface with components of your Realm app from a Realm Function. For example, you can call another Function, communicate with an external service using the HTTP module, or access data in a data source.
GraphQL
Open-source data query and manipulation language for APIs. MongoDB Realm GraphQL supports reading and writing data as well as subscribing to data changes. An alternative to Realm Database queries using the client’s native query language.
linked cluster

A MongoDB Atlas database cluster that is associated with your Realm app. You can define data schemas and access rules to control who can access what in any linked cluster. Realm Database data is automatically synchronized with your linked cluster when Realm Sync is enabled, which makes that linked cluster a synced cluster. Access data in your synced cluster from a Realm client using the MongoDB Atlas service in the Realm SDK.

live objects
Instances of Realm objects that always reflect the state of the underlying object in the realm version of the enclosing realm instance. Implemented using zero-copy objects that access object attributes via shallow pointers into memory-mapped data. You can subscribe to changes to any live object or collection of live objects, including realm instances.
MongoDB Atlas
MongoDB Atlas is a hosted MongoDB service option in the cloud which requires no installation overhead and offers a free tier to get started. To learn more about MongoDB Atlas, see the Atlas documentation.
MongoDB document
See the MongoDB Manual’s definition of document. For Realm apps that use Realm Sync, every MongoDB document in the Realm app’s data source corresponds to a synced Realm object in a client realm.
MongoDB Realm
A cloud-hosted Backend-as-a-Service (BaaS) providing client-side functionality via the Realm SDK and an administrative interface via a website.
Notifications
The Realm Database system that allows you to watch for and react to changes in your data independently of the writes that caused the changes.
null partition
A null partition is the default realm on the client device.
partition key
A field within a MongoDB document whose value determines which realm contains the document’s corresponding Realm object.
partition value
A value of a Realm app’s partition key field. Every unique partition value corresponds to a different realm assignment.
partitioning
A process that maps MongoDB documents in a synced MongoDB Atlas cluster into Realm objects in client realms. See the Partition Atlas Data into Realms documentation for details.
realm
A collection of Realm objects sharing the same partition key value. Client instances subscribe to individual realms which passively synchronize changes as network availability allows.
Realm Administration API
A HTTP API through which you can perform administrative tasks.
Realm app
An instance of the MongoDB Realm Backend-as-a-Service that you can control from the Realm UI and interact with from SDKs. It is the central, server-side configuration that functions as the backend for your application.
Realm CLI
A command line interface named realm-cli from which you can manage any Realm app. For example, you can define Functions, create automated Triggers, view logs, and link MongoDB Atlas data sources.
Realm client
Anything that interacts with a Realm app using a Realm SDK. Examples include phone apps, IoT devices, and server applications.
Realm data model
The collection of Realm object definitions that describes all data synchronized via Realm Sync between mobile Realm clients using the Realm Object Model and a backend Realm app using Realm Schema.
Realm Database
An ACID-compliant offline-first object database for mobile devices. Using the Realm SDK, you can query a local instance of the Realm Database and synchronize your local instance with data stored inside MongoDB Atlas. Offline-first design ensures that reads and writes query the local database instance only. When Realm Sync is enabled, a separate background thread handles synchronization of changes between local realms and your synced MongoDB Atlas cluster.
realm file
File containing all data for a local realm for an instance of Realm Database.
Realm Function
Server-side logic for your Realm app. You can call functions from any Realm client, from other functions, with a Realm Trigger, or a Realm webhook.
realm instance
The result returned by a call to realm.open(). An interface through which a Realm client application can read and write to a local realm. Every realm instance references a realm version. You can update the realm version referenced by a realm instance by explicitly calling the refresh method on that realm instance. Beginning or committing a write transaction on your realm instance also advances the realm version. Platform with a built-in event loop automatically refresh the realm instance on the event loop thread between iterations of the event loop.
Realm object
An instance of a Realm object type. An object that you can store in a realm and sync with a synced MongoDB Atlas cluster.
Realm Object Model
The structure that defines the fields of and relationships between all Realm objects that you can read or write into a client-local realm instance. Defined natively in the code of your client application.
Realm object type
A declaration of an object structure that can be stored and synchronized using MongoDB Realm. This includes primitive fields, embedded lists, and object relations. Collectively referred to as the Realm data model. You can customize Realm types for your Realm app in two different ways: by altering or creating Realm Object Model definitions in the Realm SDK with development mode enabled in your Realm app or by creating or editing a JSON schema assigned to a collection in the Realm UI or realm-cli, which directly edits the Realm app’s Realm Schema.
Realm Rules
Boolean expressions that determine the read and write permissions for a given user for a particular resource.
Realm Schema
The structure that defines the fields of and relationships between all MongoDB documents that you can read or write into a Realm app’s linked MongoDB Atlas cluster. Defined and enforced in your Realm app.
Realm SDK
A library used by a Realm client to connect to a MongoDB Realm application or a local Realm Database.
Realm Secret
A private value stored in MongoDB Realm that cannot be directly read, but can be assigned to variables. Secrets are automatically obscured from MongoDB Realm logs. Common use cases include authentication provider and service configurations.
Realm Sync
Shares data changes between a MongoDB Realm linked cluster and a Realm client-local Realm Database. MongoDB Realm resolves conflicts between changes consistently between clients so all connected clients eventually arrive at the same state.
Realm Trigger
Execute a function automatically when an event occurs or at a scheduled time. You can configure responses to data changes, user logins, and scheduled events. Every trigger activation calls a Realm Function.
Realm UI
A web interface from which you can manage any Realm app. For example, you can define Functions, create automated Triggers, view logs, and link MongoDB Atlas data sources.
Realm Value
A named reference to a piece of static data defined in MongoDB Realm, accessible through Realm Function and Realm Rule expressions.
Realm version
A snapshot of data in a local realm at a given moment. Each realm instance references a realm version. The Realm SDK cannot free resources for a realm version while any realm instance continues to reference it.
Realm webhook
An HTTP endpoint that calls a function upon request.
relationship
A relationship is an object property that references another object rather than a scalar or embedded object.
scheduled trigger
Call a Realm Function based on a schedule that you define using a CRON expression.
Schema Validation
Rules for an instance of MongoDB that specify the form of documents that you can insert into each collection, including both fields and values.
sync protocol
Procedure used by Realm Database when Realm Sync is enabled to update local data to reflect remote data changes and push local changes to MongoDB Realm. This protocol merges changes and resolves conflicts between those changes consistently across all synced instances of a realm.
Sync role
A set of realm-level permissions that MongoDB Realm evaluates to determine whether a user may sync a given realm. See Define Sync Rules.
synced cluster
A MongoDB Atlas database cluster that is partitioned into client realms that synchronizes data via your Realm app. Access data in your synced cluster from a Realm client using Realm Database via the Realm SDK.
system function
A Realm Function that runs as the system user.
system user
A user that communicates directly with the data source and other services, bypassing collection Realm Rules and Schema Validation. This user bypasses most restrictions on the CRUD & Aggregation APIs.
user ID
A unique BSON ObjectID that identifies a single user in a single Realm app.
user ID field
The field of MongoDB documents in the custom user data collection whose value is a user ID that maps custom user data documents to MongoDB Realm users.
write transaction
You can only write to a realm during a write transaction. Beginning or committing a write transaction has the side effect of advancing the realm version of the enclosing realm instance.
zero-copy
A principle upon which MongoDB Realm is built. While traditional ORMs copy data from the database into native-language objects, Realm objects read and write data using memory mapping to read and write data directly to and from the database via shallow object wrappers.