How do you build a database like FaunaDB?
Since our serverless cloud launch a few weeks ago, the community has been asking for deep technical insight into how FaunaDB is designed and implemented. A comment by mdasen on Hacker News summed it up:
“They seem to understand more than their marketing lets on.”
We are happy to release the first draft of our technical white paper in response. Download it here.
The paper explains the foundations of FaunaDB and the motivations for creating an adaptive operational database.
It’s an operating system, Jim, but not as we know it
Databases are some of the most complex systems ever created. A complete database, distributed or not, looks just like an operating system. This is not a new observation, and FaunaDB is no exception. It has:
- A recursive, replicated, journaled, and rewindable storage engine
- A priority-aware process scheduler, which effectively implements cooperative multi-threading for all machine resources
- A query language, including saved queries—the equivalent of an executable format
- Authentication, identity management, and data access control
- Telemetry, logging, and tools for backups and integrity checks
Because it’s distributed, FaunaDB also implements:
- A global request router
- A consistent cluster management engine
- An ACID-compliant transaction resolution engine
FaunaDB does not have a windowing system, but we are working on a query explorer and operational dashboard.
To boldly transact where no transaction has gone before
We’ve all suffered so long with existing database technology that anything new seems too good to be true. There has been healthy skepticism (as well as excitement) about FaunaDB so far. We want to begin putting those doubts to rest. We know we have more work ahead of us and are excited for your feedback.
Grab the paper here.