Amazon Aurora alternatives
Open source alternative to Amazon Aurora Database offering
Amazon Aurora is a fully managed, cloud-native relational database engine that’s compatible with MySQL and PostgreSQL. AWS claims it to have up to five times the throughput of MySQL and up to three times the throughput of PostgreSQL.
Although Aurora is great for high performance, reliability, and large scale, it is only available in AWS and is a proprietary service. In this blog, We will go through a few open-source alternatives to Aurora.
MySQL Compatible Options
- PlanetScale
- TiDB
Postgres Compatible Options
- Neon
- YugaByte
PlanetScale
PlanetScale is a MySQL-compatible database that brings you scale, performance, and reliability — without sacrificing developer experience. It is backed by Vitess. Vitess is a shared-nothing architecture where each shard contains a MySQL primary node and set of replicas. VTGate proxy routes the application request to the respective shard.
- Open-sourced database under Apache-2.0
- Based on Vitess
- The shared-nothing architecture grants near-linear scalability up to 1 million QPS
- PlanetScale has horizontal scaling for write and reads
- Row reads/writes + storage + HA
- PlanetScale recently introduced a new Scaler Pro tier for unlimited row reads/writes.
- High-availability & geographically distributed data
- PlanetScale supports various types of indexes, including primary, secondary, and unique indexes. Primary indexes are automatically created on the primary key column, while secondary indexes can be defined on other columns for faster query performance. Unique indexes ensure data integrity by enforcing uniqueness constraints.
- PlanetScale follows a strongly consistent model
- PlanetScale supports most of the MySQL API.
- PlanetScale is used at Cash App, Attentive, Mintify
Neon
Neon follows a shared storage architecture. It separates the compute and storage. The compute part is a simple PostgreSQL server, the storage part is a custom-built multi-tenant storage system shared by all Postgres compute nodes.
- Open-sourced database under Apache-2.0
- Neon has ~100% compatibility with vanilla PostgreSQL.
- Neon is also able to use Rust, a more suitable system language to implement its storage layer
- Neon has a single writer node, so it can scale writes vertically with added CPU, RAM, and storage, but reads are scaled horizontally with read replicas.
- The separated architecture also infers elasticity, scale-to-zero is as easy as scale-up.
- Neon’s pricing model is traditional and predictable and is billed for computation + storage + data transfer.
- Neon primarily relies on key-based indexing, where each record is associated with a unique key for fast retrieval. The key-value model simplifies data access and is suitable for applications requiring high-speed data access.
- Neon supports eventual consistency.
- It is suitable for scalable web applications with limited transaction needs.
- Neon is used at companies like Replit, Invenco, Retool, Vercel, Supergood AI
YugaByte
YugabyteDB is a PostgreSQL-compatible, high-performance, cloud-native, distributed SQL database.
- Open source and cloud-native with multi-cloud deployability
- Geo-location deployment and global data consistency
- Row-level geo-partitioning
- Supports synchronous replication across zones and regions
- Strong consistency on writes and tunable consistency on reads
- It consists of a SQL database system and a distributed database system.
- Supports single- or multi-row transactions (OLTP apps)
- High performance and linear scalability (both read and write)
- Supports change data capture (CDC) mechanism
- PostgreSQL-compatible distributed SQL API
- Used at companies like General Motors, Fidelity, Jio, Samsung, Dell
TiDB
TiDB is an open-source, cloud-native, distributed SQL database designed for high availability, horizontal and vertical scalability, strong consistency, and high performance.
- TiDB’s architecture separates computing from storage
- TiDB can scale both SQL processing and storage capacity by adding new nodes, allowing it to handle large datasets and high concurrency.
- TiDB offers high availability with automatic failover
- Scales down to zero.
- TiDB is compatible with MySQL 8.0
- includes components like TiDB Server, TiKV Server, TiFlash Server & Placement driver. TiKV is used for row-based storage and TiFlash for columnar storage.
- TiDB automatically shards (or partitions) your data across different nodes to ensure load balancing and optimized performance.
- TiDB supports Hybrid Transactional and Analytical Processing (both OLTP and OLAP) workloads.
- TiDB supports strong Consistency
- TiDB can be easily deployed on Kubernetes
- Used at large tech companies like Databricks, Pinterest, Bytedance, Flipkart, and LINE.
Other Notable Options
Closed source
- CockrochDB (PostgreSQL)
- SingleStore (MySQL)
Open source
- RonDB (MySQL)
- CitusData (PostgreSQL), now owned by Microsoft