What is Fauna?

Fauna is a distributed document-relational database delivered as a cloud API. It combines support for semi-structured data with powerful relational features such as foreign keys, views, and joins.

The Fauna multi-region compute and data platform is fast, reliable and secure. Our Calvin inspired distributed transaction engine provides strong consistency and multi-region replication so application code doesn’t have to. Data temporality provides efficient reads and the ability to audit writes. Database multi-tenancy allows multiple databases per account with multiple region groups for isolation and data residency requirements. Intelligent routing within the service will route requests to the right database anywhere from a single global endpoint. A trusted platform, Fauna also complies with GDPR, SOC2 Type II, and HIPAA.

With Fauna it is easy to create a new database in any region group with just a few clicks. You can manage team roles with fine grained access controls, track usage and consumption based billing via the dashboard where you can also upload schemas, run queries and improve performance by creating indexes. Fauna has a network of integrations to leading development tools, compute platforms, identity providers, and serverless infrastructure partners. Our API delivery model translates to 100% freedom from database operations at any scale so you can say goodbye to managing servers, clusters, capacity planning, data partitioning, backups, replication and unpredictable loads.

Fauna operates as a multi-tenant database service with multiple region group options for deployment. In addition, for more demanding applications that also require a specific geographic footprint, our Virtual Private Fauna offering is an option that allows you to consume Fauna in your geographic region or cloud provider of choice.

How does Fauna address these requirements?

Fauna capability Benefit Use Case Examples

Strictly serializable, multi-region transactions.

Provides a consistent, unified, and global view of all data in real time.

Global backend for operational SaaS or mobile apps.

Single round consensus for writes.

Lower write latency that is not impacted by multiple round trips across different regions.

Transactional mobile and payment apps where a snappy user experience matters.

Write serializability independent of the number of keys.

Unlike some of our competitors, Fauna does not have any restrictions on the number of keys that can be part of a transaction. There is no need to artificially split transactions into multiple batches of keys.

Games or business applications where a transaction can impact multiple keys.

Serializable reads can be serviced by any replica.

Reads can be serviced by any region. Results in real-time visibility that provides an accurate view to the end user.

Location-based mobile apps that require low-latency, consistent reads, irrespective of geography.

No contention between serializable writes and reads.

Leads to lower latency writes and a consistent view of data across the globe.

Real-time business apps that feature consolidation of data across the globe.

Architectural innovations across Fauna

Fauna has innovated in multiple areas of the database.

Document relational data model

Fauna is the first document-relational database, offering the benefits of document and relational databases in a package that is attractive to developers. Like other document databases, data in Fauna is stored in JSON documents that are initially schemaless, providing flexibility in early application development as schema evolves. Currently in development, Fauna will also be introducing optional schema support that allows developers to incrementally start enforcing the shape of data across groups of document collections.

Unlike other document databases, documents stored in Fauna can reference each other based on attributes, allowing developers to use arbitrarily complex joins in the database layer and eliminating the need for multiple round trips and custom join logic in application code. All requests execute in the context of a transaction, which means that the result is guaranteed to be consistent and up to date at the snapshot time of the request.

Database Language and API

The Fauna primary developer interface is our functional database language called FQL. While not a general-purpose programming language, it provides much of the functionality expected from one. It allows for complex, precise manipulation and retrieval of data stored within Fauna. A query is executed by submitting it to Fauna, which computes and returns the result. Query execution is transactional: No changes are committed if something goes wrong.

In addition Fauna offers a GraphQL API as an easy way to initially get started with Fauna. The Fauna GraphQL API is functional, and can handle most GraphQL workloads. However, there are some GraphQL features that are currently not supported and for more sophisticated interaction with the database, FQL is the better choice.

Multi-region, active-active by default

Under the hood the Fauna service implements a master-less architecture. With replicas in a cluster, geographically distributed across many locations, Fauna provides Active-Active transactions that allow applications to scale horizontally across multiple regions without a single line of code.

Modern security model

In addition to running a secure service, Fauna has a modern security model at the database level that would be expected for an internet facing API. It is designed for applications that are exposed to millions of untrusted and potentially malicious users or devices, and must implement identity management, authentication, and row-level security, at a minimum. The Fauna database security model internalizes these concerns and provides both administrative and application-level identity and security, either through API servers, or directly to untrusted clients like mobile, browser, and embedded applications.

Next steps

Now that you know something about what Fauna is about, you should sign up for a free account and take Fauna for a spin! See the Dashboard quick start for details.

There is much more to learn about Fauna:

Is this article helpful? 

Tell Fauna how the article can be improved:
Visit Fauna's forums or email docs@fauna.com

Thank you for your feedback!