FaunaDB

FaunaDB is an OLTP database for cloud environments.

History

Fauna was founded in 2012 by a team of ex-Twitter engineers to solve consistency vs scale tradeoff in distributed data infrastructure. FaunaDB in inspired by Calvin, and is the only commercial database system that implements that protocol till date.

System Architecture

Shared-Nothing

All nodes in a FaunaDB cluster run the same Java JAR, with administrator control over log and data replication topology. Queries can be serviced by any node in the cluster, which acts as the coordinator for the query. Queries run as isolated ACID transactions, and can include precondition checks and dependent queries. Transactions are processed using the Calvin protocol which is optimized for multi-region deployments.

Data Model

Relational Key/Value Document / XML Graph

FaunaDB is an indexed document store that allows access to the stored data using multiple models - relational, document, graph and key-value.

Views

Materialized Views

FaunaDB’s indexes are similar to views, in that they materialize covered fields from the source class, which are returned as part of the index query result. Similar to materialized views, access control rules can enforce that particular indexes can only be read by client keys with specific roles.

Isolation Levels

Serializable Snapshot Isolation Cursor Stability

Read-write transactions using serialized indexes run with strict-serializability. Read-only transactions and index reads from non-serialized indexes will see snapshot isolation. Clients can upgrade to strict-serializability across all operations.

Logging

Logical Logging

FaunaDB uses standard file-based query logging with configurable log file locations. Additionally a statsd interface is provided for integration with tools like Datadog and Graphite.

FaunaDB Logo
Website

https://fauna.com/

Tech Docs

https://docs.fauna.com

Developer

Fauna Inc.

Country of Origin

US

Start Year

2012

Project Type

Commercial

Written in

Scala

Supported languages

C#, Go, Java, JavaScript, Python, Scala

Inspired By

Calvin

Operating Systems

All OS with Java VM, Hosted

Licenses

Proprietary