This lesson has been retired.
Become a member
to unlock all features

Level Up!

Access all courses & lessons on egghead today and lock-in your price for life.


    An Introduction to FaunaDB

    Chris BiscardiChris Biscardi

    FaunaDB is a Calvin inspired hosted database marketed towards JAMStack and serverless users. It is geo-replicated across multiple providers (AWS, GCP, and soon Azure), uses a lambda calculus based query language (FQL) or the built-in GraphQL support, and is quick to get started with. Don't worry about the vocabulary here (Consistency, lambda calculus, etc), FaunaDB can be quickly put to work without reading any papers and without knowing what lambda calculus is.



    Become a Member to view code

    You must be a Member to view code

    Access all courses and lessons, track your progress, gain confidence and expertise.

    Become a Member
    and unlock code for this lesson




    Chris Biscardi: Fauna is built as a globally distributed, serverless, cloud database management system of modern applications, like those on the JAMstack. What this means is that FaunaDB is a document store, with a lambda calculus based query language called FQL, and native GraphQL support. It is similar to Spanner, and inspired by Calvin.

    Both of which have papers written about them, that have been cited hundreds of times. I have put links to both papers in the description. However, getting started with FaunaDB is easier than it sounds. You won't have to read the papers or take a course in lambda calculus to get it up and running quickly.

    Practically, what this means is you can quickly spin up a new database, offload operations to the Fauna team, describe databases using the built-in GraphQL support, and access your content from anywhere around the world quickly without sacrificing correctness constraints.

    FaunaDB is multi-tenant by default, which means it supports nested databases. It operates as a multi-cloud service that crosses AWS and GCP in multiple global regions. All of this is done for you, without having to give up transactions.

    The FaunaDB drivers support an array of popular languages, such as Go and JavaScript. FaunaDB also internalizes security in a way that some other databases do not, but we'll get into that. If you're interested in the deeper correctness constraints that FaunaDB yields, take a look at the Jepsen report for FaunaDB.

    Note that if you haven't seen a Jepsen report before, one of the best outcomes is that the Jepsen report finds issues, and then the company acknowledges and also solves them. Note that depending on how you use FaunaDB, you can achieve snapshot isolation levels of consistency or serializable.

    That puts FaunaDB somewhere between snapshot isolation and strictly serializable on this chart of consistency models.