- An acronym that expands to "Atomicity, Consistency, Isolation, and Durability". 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.
- An instance of the Realm Backend-as-a-Service that you can control from the Atlas App Services UI and interact with from SDKs. It is the central, server-side configuration that functions as the backend for your application.
- Application ID
- A unique identifier for your App Services application. Sometimes called by the shorthand "App ID". The App ID is used to connect to your App Services application via the client SDKs.
- Atlas App Services
- A cloud-hosted Backend-as-a-Service (BaaS) providing client-side functionality via the Realm SDK and an administrative interface via a website.
- Atlas App Services UI
- A web interface from which you can manage any App. For example, you can define Functions, create automated Triggers, view logs, and link MongoDB Atlas data sources.
- Atlas Device Sync
- Shares data changes between a Atlas App Services linked cluster and a Realm client-local Realm Database. Realm resolves conflicts between changes consistently between clients so all connected clients eventually arrive at the same state.
- authentication provider
- An integration of a specific authentication mechanism into Realm's user authentication system. 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 App. Passes an authentication event describing the user and interaction to the linked function.
A backlink is a link within a RealmObject that indicates that the RealmObject has an inverse relationship with another RealmObject. An embedded object should have a backlink to its parent object.
For more information on how to define and work with backlinks and inverse relationships, see the client guide for your SDK:
- client reset
When using Atlas Device Sync Overview, 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:
- 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
compactmethod 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 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 Realm stores MongoDB documents corresponding to custom user data.
- custom user data database
- The database that contains the custom user data collection.
- data source
- TipSee also:
- 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, automatically updates your Realm Schema to match the Realm Object Model used by synced client applications. As the name suggests, this mode 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
npmthat you have uploaded to your 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 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.
- Open-source data query and manipulation language for APIs. 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.
A MongoDB Atlas database cluster that is associated with your 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 Atlas Device 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.TipSee also:
- 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 Apps that use Atlas Device Sync, every MongoDB document in the App's data source corresponds to a synced Realm object in a client realm.
- 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 App's partition key field. Every unique partition value corresponds to a different realm assignment.
- A process that maps MongoDB documents in a synced MongoDB Atlas cluster into Realm objects in client realms. See Partitions for details.
- 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.
- The database whose docs you're reading.
- Realm Administration API
- A HTTP API through which you can perform administrative tasks.
- Realm CLI
- A command line interface named
realm-clifrom which you can manage any 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 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 Atlas Device Sync between mobile Realm clients using the Realm Object Model and a backend 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 Atlas Device 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 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
refreshmethod 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 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 App in two different ways: by altering or creating
Realm Object Model definitions in the Realm SDK with
Development Mode enabled in your App or by creating or editing
a schema assigned to a collection in the Atlas App Services UI or
realm-cli, which directly edits the 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 App's linked MongoDB Atlas cluster. Defined and enforced in your App.
- Realm SDK
- A library used by a Realm client to connect to a Realm application or a local Realm Database.
- Realm Secret
- A private value stored in Atlas App Services that cannot be directly read, but can be assigned to variables. Secrets are automatically obscured from Atlas App Services logs. Common use cases include authentication provider and service configurations.
- 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 Value
- A named reference to a piece of static data defined in Atlas App Services, 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.
- 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 Atlas Device Sync is enabled to update local data to reflect remote data changes and push local changes to Atlas App Services. This protocol merges changes and resolves conflicts between those changes consistently across all synced instances of a realm.
For more detailed information on the requests and process used by sync clients and servers, see Realm Sync Protocol.
- Sync role
- A set of realm-level permissions that Atlas App Services 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 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 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 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.
- A principle upon which 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.