Glossary

ACID consistency

The guarantee that every transaction includes atomicity, consistency, isolation, and durability.

Atomicity

The guarantee that each transaction is treated as a single block of work, which either succeeds or fails in its entirety.

Class

A class is the deprecated synonym of collection.

Cluster

A cluster refers to the group of nodes that work together to provide the services of FaunaDB. Nodes belong to replicas, and each replica contains a full copy of all data within a FaunaDB cluster.

Collection

A collection is a group of data categorized within a database. Data within a collection usually has a common structure, but this is not required. If you’re familiar with traditional databases, you can think of a collection as a table without a structured schema.

Consistency

Consistency is the promise that any data written to the database must be valid according to all defined rules, such as unique indexes.

Data node

A node in a FaunaDB replica which is responsible for persisting and retrieving data.

Database

Databases are containers for data with access control. In FaunaDB’s multi-tenant system, databases can be hierarchical, with multiple child databases nested within parent databases, each with their own permissions and security settings.

Directive

A directive is a GraphQL feature that provides dynamic control over the execution of a query.

Document

Documents are single, changeable records within a FaunaDB database. Because they are changeable, they can have more than one version over time as they are updated by an application. If you are familiar with other database systems, you can think of a document as a row, or record.

Document ID

The unique identifier of a document within a collection or database.

Durability

Durability guarantees that once a transaction has been committed, it is permanent. If a system crash, power failure, or other unexpected failure occurs, all transactions with committed data are saved.

Fauna Query Language (FQL)

FaunaDB offers a fully functioning transactional query language called Fauna Query Language (FQL). You can interact with it via the official drivers or the Fauna Shell. The native language drivers provide the ability to write application queries in the programming language of your choice.

Globally, horizontally scalable

FaunaDB is globally, horizontally scalable because it allows each FaunaDB node to perform the same role as any other FaunaDB node, with nodes that can be distributed around the world. With each node able to serve any role, there is no single point of failure.

Granular identity management, authentication, and access control

Granular identity management, authentication, and access control built on top of an enterprise-class, multi-tenant foundation, provides a secure platform for companies of all sizes. FaunaDB has both administrative and application-level identity and security to provide a layer of separation between applications and administration. This provides the application developers more time to focus on building their applications without having to spend time securing the overall datastore.

GraphQL

GraphQL is an open source data query and manipulation language that provides declarative schema definitions and a composable query syntax. For more information, see https://graphql.org/.

Index

An index is a database entity that facilitates data lookups. Indexes are used to quickly locate data without having to search every individual document (or row of data) in the database.

Instance

An instance is the deprecated synonym of document.

Instance ID

An instance ID is the deprecated synonym of a document ID.

JSON

JSON (JavaScript Object Notation) is a lightweight data-interchange format. A human-readable, plain-text format for expressing structured data. For more information, see http://www.json.org/.

Sequences

Sequences are arrays and pages that can be mapped and filtered.

Log node

A node in a Fauna replica which is responsible for coordinating and storing transactions.

Multitenancy

Multi-tenancy is the ability to have a single Fauna cluster provide individual databases to multiple tenants (e.g., companies, applications, programmers, and/or users) in isolation. Each tenant has complete administrative control, a private security model, and programmatic creativity over their own database(s), free from interference from users of other databases in the cluster.

Mutation

A mutation refers to a query that changes data when using GraphQL.

Node

A node is a computer (or virtual machine) with a unique network address that is running the FaunaDB database software.

Partition

A group of nodes containing exactly one node from each replica.

Reference

Every document in the database has an identifier called a reference, or ref for short. A document’s ref encodes its collection along with a unique id, and is therefore unique to that document within the scope of the database in which it is stored.

Replica

A named group of one or more, co-located nodes containing a complete copy of the data.

Quality-of-service management

FaunaDB’s quality-of-service management means that, in a saturated cluster where resources are reaching critical capacity, each tenant receives scheduling proportional to their configured priority. For example, in a saturated cluster with two tenants of priority 500 and 250, the first tenant gets 2/3 of the resources and the other gets 1/3 of the resources. This prevents a single greedy user from significantly impacting other users.

Query

A query is the way to ask a database for, or to change, data. FaunaDB’s native Fauna Query Language provides a robust set of commands to help you form any kind of query you require. You can also use GraphQL for most kinds of querying too.

Set

A set is a sorted group of immutable data from a collection. Object data is mapped onto a set, and as documents are created, modified, and deleted, the set is updated. Sets provide a relational view of the data within your collection, such as all the X that are Y.

Temporal documents

In FaunaDB, documents are temporal, meaning each creation, modification, or deletion event is assigned a transaction timestamp and inserted into the document history. Approaching documents temporally allows event sourcing, reactive programming, and various audit and stream-oriented data architectures that help the system "just work". Unlike older NoSQL systems, no additional configuration is needed to get your database playing nicely with your incoming and outgoing data.

Transaction log

To prepare for unexpected failures, all transaction data received by a log node is written to non-volatile storage for recovery of a replica. The transaction data is written in the order received to optimize for fast writes.

Was this article helpful?

We're sorry to hear that.
Tell us how we can improve! documentation@fauna.com

Thank you for your feedback!