An operations-free, scalable and flexible alternative to Postgres
Validated by Jepsen, Fauna is a flexible, developer-friendly, transactional database delivered to you as a secure, Global API that integrates easily with your preferred programming language.
The goodness of Postgres without its operational bottlenecks
Postgres and Fauna are both relational databases, supporting serializable transactions, database normalization, foreign keys, indexes, constraints, stored procedures, and other typical relational features. Additionally, Fauna offers modern capabilities such as data temporality, streaming, and multi-tenancy, combined with a NoSQL API and built-in support for GraphQL.
If you like Postgres, especially its transactional properties and battle-hardened reliability, but wish to minimize your operational burden, gain flexibility, and free yourself from routine tasks such as data partitioning, replication, redundancy, etc. you may like Fauna even more!
Simplify code, reduce costs and ship faster
Fauna combines the operational integrity and relational modeling of Postgres with a flexible interface and architecture that fits better with modern application development. Moreover, its serverless approach completely eliminates the provisioning and administrative tasks associated with cloud Postgres services.
Fauna Benefit | Comparison with Postgres |
---|---|
Freedom from ORM complexity | ORMs introduce significant application complexity, and make it difficult to use core Postgres features. Fauna’s document model is a more natural fit for modern applications, does not require ORMs, and still supports transactions, joins, relations, indexes, and views. |
Transparent and performant indexing | Query optimization in Postgres can be a dark art, and query plans can change at runtime in surprising ways. In Fauna, indexes are more like transactional views. They are composable and transparent and always make the query plan clear. |
Flexible schema design | Migrating a SQL schema can be a pain, especially when you aren’t sure of how your application is going to evolve. Fauna is schemaless, improving developer flexibility without giving up any of the core relational model. |
Serverless connection model | We are all familiar with the overhead of persistent Postgres connections and tools like PgBouncer that try to mitigate it. This model doesn’t work in a serverless and web-native world. Fauna uses stateless, secure HTTP connections with no cold start latency, connection management, or proxying problems. |
Better transactional isolation | Postgres defaults to read-committed isolation, which can result in correctness errors under concurrency. Even higher levels of isolation only apply to queries to the primary node. Fauna offers strict serializability--the highest possible isolation level--for every query, even in globally distributed deployments. |
Modern security model | Postgres has a complex set of security models that interact in surprising ways, and customer-level identity and access control is usually impractical--not to mention vulnerable to SQL injection attacks. Fauna has a web-native security model that is highly composable, secure by default, and integrates with popular cloud identity providers. |
Higher availability | Postgres’ primary/secondary replication creates performance bottlenecks, consistency issues, and single points of failure. Fauna’s semi-synchronous replication, inspired by Calvin, manages failures of the underlying infrastructure transparently for both reads and writes and guarantees optimal latency in any environment. |
Limitless scale | Postgres is a provisioned system, not an elastic one. Capacity planning takes time and often cost and scalability are in conflict. Fauna makes the database available as a Global API, not a provisioned resource. There are no resource limits and performance is predictable at any scale. |
No more operations | Many versions of Postgres exist in self-operated or managed cloud environments. All of them have different capabilities, upgrade cycles, and replication options to manage. Fauna is delivered as a Global API--always up to date, always backwards compatible, and always available. |
Built-in temporality | Although Postgres offers no way for the application to access record history. Fauna has built-in configurable temporality, letting you build time-travel and undo features, protect yourself from developer error, create audit logs, and capture change data for synchronization with other systems. |
Multi-tenancy | Multi-tenancy in Postgres requires extending every table with a tenancy key and does not offer any data or query isolation. Fauna has built-in recursive, secure, dynamically isolated multi-tenancy, making it easy to offer separation and customization to your customers, or to manage and secure usage within your organization. |
What's the buzz about?
Our customers love Fauna because it is productive, modern, uncompromising and operations-free.
Felix Engelhardt, Lead Engineer at EIDU
Eigil Sagafos, Co-Founder and CTO at Shift X
Learn more
Getting started with Fauna is easy! Just follow our quick start guide, or browse through our resources to better understand the differences between Fauna and Postgres.
Ready to get started?
Launch a new app, modernize an existing app, and scale seamlessly across regions.