Cardinality refers to the number of elements in a set or group, as a property of that group. Low cardinality refers to a small number of distinct items, whereas high cardinality refers to a large number of items. For example, a
booleanfield has a cardinality of 2, which is low.
A class is the deprecated synonym of collection.
A cluster refers to the group of nodes that work together to provide the services of Fauna. Nodes belong to replicas, and each replica contains a full copy of all data within a Fauna cluster.
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 is the promise that any data written to the database must be valid according to all defined rules, such as unique indexes.
A cursor marks a position within a paginated set. When you use the
Paginatefunction, and the total number of results exceeds the current page size, an
aftercursor marks the position for the next page of results, and a
beforecursor marks the end of the previous page of results. You use the
beforecursor in subsequent queries to request additional results.
- Data node
A node in a Fauna replica which is responsible for persisting and retrieving data.
Databases are containers for data with access control. In Fauna’s multi-tenant system, databases can be hierarchical, with multiple child databases nested within parent databases, each with their own permissions and security settings.
A directive is a GraphQL feature that provides dynamic control over the execution of a query.
Documents are single, changeable records within a Fauna 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
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.
- Extract, Transform, Load (ETL)
ETL is a three-step procedure that is typically used when blending data from multiple sources, such as when copying data from one or more databases into a single database. ETL can define how to extract the data from the sources, how to transform the data into the necessary format, and how to load the data into the destination.
- Fauna Query Language (FQL)
Fauna 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
Fauna is globally, horizontally scalable because it allows each Fauna node to perform the same role as any other Fauna 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. Fauna 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 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/.
An identity typically represents a "user", but could also be used to identify any service, system, or process that needs to run queries with specific privileges. Any document within Fauna can be used as an identity.
- Identity provider
An identity provider is a system that creates, maintains, and manages identity information, and provides authentication and authorization services. For more information, see Auth0.
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.
An instance is the deprecated synonym of document.
- Instance ID
An instance ID is the deprecated synonym of a Document ID.
- JSON Web Token
A JSON Web Token, or JWT, is a digitally-signed object that is typically used to communicate verified and trusted information about a user, to essentially indicate that a specific user has been authenticated. For more information, see https://jwt.io/introduction/.
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.
A mutation refers to a query that changes data when using GraphQL.
A node is a computer (or virtual machine) with a unique network address that is running the Fauna database software.
A group of nodes containing exactly one node from each replica.
- Pure function
A pure function has the following properties:
The function’s return values are identical for identical arguments.
The function’s execution causes no side effects. Side effects would include document writes, streaming events, or other externally-noticable mutations.
- Quality-of-service management
Fauna’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.
priorityoption is deprecated as of release 2.10.0. You should avoid specifying
priority. In some future Fauna release,
prioritywill be removed. See Deprecations for more details.
A query is the way to ask a database for, or to change, data. Fauna’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.
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.
A named group of one or more, co-located nodes containing a complete copy of the data.
Sequences are arrays and pages that can be mapped and filtered.
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 Fauna, 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.
Is this article helpful?
Tell Fauna how the article can be improved:
Thank you for your feedback!