FaunaDB: A New Distributed Database from the Team That Scaled Twitter

| by Abel Avram Follow 5 Followers on Mar 24, 2017. Estimated reading time: 2 minutes |

A note to our readers: You asked so we have developed a set of features that allow you to reduce the noise: you can get email and web notifications for topics you are interested in. Learn more about our new features.

Former technical leaders from Twitter and Couchbase have created FaunaDB, a new general-purpose database.

Evan Weaver, former Architect and Director of Infrastructure of Twitter, Matt Freels, former Technical Lead of database teams at Twitter, along with Chris Anderson, co-founder of Couchbase, joined forces to lead the creation of a new “adaptive operational database” they wished they had while working at Twitter. The result is FaunaDB, an object-oriented relational distributed database that promises to scale linearly.

FaunaDB is a CP system built to provide consistency and partition tolerance. It can run across multiple datacenters and it supports the failure of a minority of them without service interruption.  It can be scaled up both horizontally and vertically, running on a laptop, a server, multiple servers locally or in the cloud, including virtualized or containerized settings.

Similarly to Datomic, FaunaDB keeps all instances of a data, not overwriting them but creating new ones when a write is performed. This is useful especially when auditing data, verifying its evolution over time.

From a data modeling perspective, FaunaDB attempts to be everything to everyone: relational – not SQL, but supporting joins, foreign keys and indexes-, document, graph, and object-oriented. We asked Weaver a few questions to get more insight on this new database:

InfoQ: How do you define FaunaDB?

Evan Weaver: FaunaDB is a transactional, temporal, geographically distributed, strongly consistent, secure, multi-tenant, QoS-managed operational database. It's implemented on the JVM for portability, and it's relational, but not SQL. Instead, it's queried via type-safe embedded DSLs, like LINQ. FaunaDB is a return to the general database purpose model, but built for the cloud instead of the mainframes of the 80s.

InfoQ: How is FaunaDB different from other database services such as Amazon DynamoDB or Google Firebase?

Weaver: DynamoDB and Firebase are not general purpose. DynamoDB is a key/value database with some extensions, and Firebase is a hierarchical database--a model I haven't seen since MUMPS. Neither of them are geo-replicated, and they both lock you into a single cloud vendor forever with no on-premises or multi-cloud options.

InfoQ: I understand FaunaDB can be replicated across datacenters. Is this a real-time backup procedure or can users access in the same time instances hosted in different datacenters, choosing ones closer to them to reduce latency?

Weaver: The latter. Users are automatically routed to the closest datacenter, but their data is available in real time everywhere. Currently, our cloud spans AWS and Google Cloud Platform.  Later this year you will be able to select exactly which regions you want your data to be in for data sovereignty purposes.

FaunaDB can be run on-premises or in the cloud. It is also provided as a service with no operational involvement currently running on AWS and GCP with the prospect on making it available on Azure soon.

FaunaDB was written in Scala and Java and runs on the JVM on multiple operating systems including Linux, Windows, and OS X. There are drivers for several languages – Scala, Java, Java/Android, JavaScript, C#, Python, Ruby, Go and Swift, but the database can also be accessed directly through a HTTP API.

Rate this Article

Adoption Stage

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread


Login to InfoQ to interact with what matters most to you.

Recover your password...


Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.


More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.


Stay up-to-date

Set up your notifications and don't miss out on content that matters to you