CockroachDB vs Amazon Aurora and DSQL

Distributed SQL or distributed storage? Learn the differences and decide with confidence.

CockroachDB is a cloud-agnostic, AI-native, PostgreSQL-compatible data platform built for modern applications and used by industry-leading innovators worldwide to deliver unmatched uptime, scale, and compliance.

In this comparison, we examine CockroachDB alongside two Amazon databases.

First is Aurora, a high-performance managed relational database that introduces tradeoffs in write scalability, cross-region consistency, and deployment flexibility due to its single-writer architecture and AWS-only footprint.

Second is Aurora DSQL, AWS's newer distributed SQL entry that trades in deep PostgreSQL compatibility and global reach for serverless simplicity—while omitting foreign keys, triggers, stored procedures, and vector search, and offering limited cross-region deployments.

aurora-crdb

Why CockroachDB over Amazon Aurora?

elastic scale

Unlimited write scale

CockroachDB allows you to scale both reads and writes with every endpoint accepting all transactions

multi region

Global data

CockroachDB provides simple DDL that allows you to define where data will live across multiple regions

geographic scale

Multi-region scale

CockroachDB delivers an automated, simple and resource efficient database that can can span regions, clouds, and self-hosted environments

Why CockroachDB over Amazon Aurora DSQL?

Group 19488

PostgreSQL Compatibility

CockroachDB has greater PostgreSQL compatibility with support for triggers, user defined functions, and stored procedures

Group 19598

Transactional Support

CockroachDB guarantees true serializable isolation by default—delivering uncompromising accuracy even at massive scale

Group 19488

Data Residency

CockroachDB offers native support for regional data placement to deliver multi-region data domiciling


Side-by-side comparison

image
image
image
Architecture / Storage Engine

Distributed SQL, shared-nothing, peer-to-peer architecture. All nodes symmetrical; any node can handle reads/writes. Cluster uses distributed consensus: No matter where data lives, every node can access data anywhere in cluster


Built on Pebble, a highly tuned, GO-based, LSM-tree key-value storage engine developed by Cockroach Labs and inspired by RocksDB specifically for distributed SQL

Serverless, disaggregated, distributed SQL. Compute (query processor), transaction (adjudicator), and storage (journal) scale independently. Active-active, lock-free optimistic concurrency control (OCC); no single writer


Custom disaggregated storage: journal-based durability storing full transaction post-images. Independent crossbar, adjudicator, and storage fleet. No data caching. Built with Rust and Firecracker micro-VMs for consistent performance at scale

Managed relational DB (MySQL or PostgreSQL-compatible); decoupled compute + distributed storage replicated across 3 AZs. Single primary writer with read replicas


Custom Aurora distributed storage: SAN spanning 3 AZs, data replicated in protection groups. Log-structured redo-log-only writes to storage

Ideal Workloads
SYSTEM OF RECORD. Optimized for transactional workloads that require strong consistency and global distribution, such as AI innovators, cybersecurity, eCommerce & retail, financial services, fintech/payments, gaming, quant/trading & research, and online travel
NET-NEW APP DEVELOPMENT ON AWS. Cloud-native microservices, SaaS/multi-tenant, payment processing, gaming, social media; workloads needing serverless economics + multi-region strong consistency
AWS WORKLOADS. Read-heavy single- or multi-region workloads on AWS. Enterprise OLTP, SaaS, CRM/ERP, e-commerce, web apps
Auto-Sharding (Dynamic Re-Sharding Online)
NATIVE & AUTOMATIC. Automatically shards data into ranges and dynamically splits, merges, and rebalances online across nodes based on load and size. Zero downtime, fully transparent
Automatic horizontal scaling without manual sharding or instance upgrades; scale-out is fully transparent. Limited to 2 active same-continent regions and 10,000-rows per transaction
NOT NATIVE in standard Aurora. Aurora Limitless (separate offering) adds horizontal write sharding. Standard Aurora uses a single primary writer; manual partitioning strategies needed for large write distribution
Automatic Geo-Partitioning (Multi-Region Data Affinity)
NATIVE AND AUTOMATIC. Declarative SQL schema adjustments automatically route, partition, and anchor data close to the user's location, automatically moving data to the region where it is most frequently accessed. Supports geo-partitioning with zone configurations for data locality, compliance, and low latency
NOT SUPPORTED. No geo-partitioning, row-level data pinning, or affinity controls. Data is uniformly replicated across both active regions with no user-controlled placement.
NOT SUPPORTED. Global Database option provides DR and read locality but no row-level geo-partitioning or data-affinity controls. Custom application logic required for any data residency enforcement
Availability including Multi-Cloud and Hybrid
Available on all public clouds, e.g., AWS-Google Cloud-Azure; can run a single logical cluster spanning multiple clouds. Can run on prem/local, and cloud + prem hybrid deployments
AWS-only. 99.99% single-region, 99.999% multi-region (2 active regions + 1 witness region). No hybrid, on-premises, or multi-cloud support
AWS-only. 99.99% single-region availability. Global Database option has 1 primary + up to 10 read-only secondary regions. No hybrid, on-premises, or multi-cloud support
Change Data Capture (CDC)
NATIVE. CHANGEFEED command enables scalable, resilient streaming of data changes to Kafka, cloud storage, and webhooks; no third-party CDC tool needed. CDC Queries enable SQL-based filtering and transformation of streams
No native CDC support at GA. AWS recommends event-driven patterns (EventBridge, Lambda) as alternatives. Limited CDC integration options compared to mature database ecosystems.
Occurs via AWS DMS and integration with Kinesis Data Streams and MSK (Kafka). Binary log replication for MySQL-compatible edition. No native CDC command; relies on external tooling
Data Anomalies
ZERO under Serializable isolation: all standard SQL anomalies (dirty reads, non-repeatable reads, phantom reads, lost updates, and write skew) are prevented by default with no additional developer configuration. Read Committed is also available for workloads where some consistency relaxation is an acceptable tradeoff for reduced latency
Data Integrity & Foreign Keys Support
Provides strict ACID enforcement at the storage layer and full referential integrity. NATIVELY VALIDATES FOREIGN KEYS, explicit CHECKs, and transactional constraints to ensure absolute global correctness across global nodes
No foreign key enforcement at the database level; referential integrity must be implemented in application code. No triggers. Conflicts detected at commit time via OCC, not at write time.
Full referential integrity via foreign keys; supports CHECK constraints, triggers, and deferrable constraints. All standard PostgreSQL/MySQL data integrity mechanisms available.
Data Model Complexity
LOW. Relational model with strict schemas, normalized tables, joins, and referential integrity. Ideal for managing complex relationships and transactional systems of record; adapts easily to microservices and enterprise legacy systems
MODERATE WITH LIMITATIONS. PostgreSQL-compatible subset; missing foreign keys, triggers, views (at GA), sequences, JSONB, and most extensions. Complex relational models require schema simplification or application-layer enforcement.
LOW. Full relational model: complex joins, foreign keys, indexes, views, stored procedures, and triggers. Supports normalized relational schemas and complex data models
Data Residency
STRONG, INTUITIVE, AND LOCALITY-AWARE. Helps fulfill compliance (e.g., GDPR, CCPA) with Row-Level Control: can pin specific rows to specific geographic regions using REGIONAL BY ROW command, while preserving single logical data platform. Business and compliance teams can use simple SQL commands to ensure customer data never leaves specific geographic borders
NOT SUPPORTED. Data replicated across both active regions and the witness region. No mechanism to pin specific data to a single region for regulatory compliance (e.g., GDPR, data sovereignty)
LIMITED CONTROLS. Data stored in the chosen AWS region; Global Database option replicates to secondaries. No row-level residency controls; compliance architecture must be custom-designed per workload
Developer Tools / Experience / Ease of Use

Rich ecosystem: Local CLI, web console UI, ORMS, BI tools, SQL clients, native DB migration toolkits, language‑specific drivers, and compatibility with standard PostgreSQL developer tools like psql


PostgreSQL wire protocol-compatible; feels exactly like developing on standard PostgreSQL. Fits effortlessly into existing ORMs, drivers, and frameworks


Can be spun up instantly in any environment (AWS, GCP, on-prem) with the exact same management interface. The cluster manages its own data balancing, scaling, and hardware survival automatically; DBAs do not need to be distributed systems experts to keep it running smoothly.

Standard PostgreSQL drivers/ORMs, AWS Console, CloudFormation, CLI; MCP server for AI agent integration. Fewer native tools than full Aurora; unsupported PG features reduce existing toolchain compatibility // PostgreSQL wire protocol-compatible, uses existing PG drivers and ORMs, zero infrastructure management. Feature gaps including key PG features such foreign keys, triggers, stored procedures, and pgvector, so may require significant app redesign // Serverless: no provisioning, patching, or instance management. Zero maintenance windows. Feature gaps including key PG features such foreign keys, triggers, stored procedures, and pgvector, so may require app-level workarounds

Standard MySQL/PostgreSQL tools (psql, pgAdmin, DBeaver), AWS Console, RDS API, CloudFormation, CLI, Performance Insights, and HTTP Data API


Familiar MySQL or PostgreSQL developer experience with full feature compatibility


Single-region setup managed by AWS RDS: automatic backups, patching, failover, and monitoring. Global Database option promotion and failover add operational complexity for multi-region deployments

Distributed ACID Transactions
Fully distributed, multi-row, multi-table ACID transactions out-of-the-box. Fully supported with serializable isolation using distributed consensus (Raft Protocol) across tables, ranges, and regions; strong ACID guarantees
Full distributed ACID across multiple regions natively. Strong snapshot isolation enforced; atomic commits via a single journal regardless of rows modified or regions spanned.
ACID compliant within a single region. Cross-region distributed ACID not natively supported. Global Database option uses asynchronous replication, not synchronous distributed transactions
Enterprise Support
Dedicated 24/7/365 enterprise support directly from Cockroach Labs with strict SLAs and custom engineering channels. Offers global follow-the-sun support (TSE+SRE) with proven reliability and global partnerships with industry leaders. Single Global Incident Management integrates Engineering + Support + Customer Success in one channel for consistency/immediacy
AWS support tiers accessed via AWS Support portal; no dedicated database engineering team per account; SLAs tied to overall AWS service health
AWS support tiers accessed via AWS Support portal; no dedicated database engineering team per account; SLAs tied to overall AWS service health
FinOps Support
HIGH. Straightforward pricing based on predictable node usage or consumption metrics. Avoids hidden, fluctuating network traps when moving data across different infrastructure regions. Supports financial governance/FinOps
LOW. Serverless DPU (Distributed Processing Unit) consumption model billed separately for Compute, Read, and Write DPUs. Costs are difficult to predict without production testing; OCC contention can cause unexpected cost spikes.
LOW. Instance-based pricing (on-demand or reserved) plus storage per GB-month and I/O costs. I/O-Optimized tier removes per-I/O charges. Global Database option replication adds per-I/O costs; difficult to predict at scale
Follower Reads
SUPPORTED. Supports follower/replica reads with Bounded (controlled) Staleness, allowing low‑latency local reads from nearby replicas while keeping strong global ordering
All reads are strongly consistent from any endpoint. AZ-local query processors provide low latency with consistency. No stale/follower read concept needed due to active-active architecture
Read replicas share the same underlying storage volume and incur replica lag; limited number of read replicas per cluster. Global Database option secondary regions serve local reads with lag
FREEDOM
ZERO VENDOR LOCK-IN. Runs on any public or private cloud, across multiple clouds, via CockroachDB's Bring Your Own Cloud (BYOC) offering, on-premises, bare metal, Kubernetes, self-hosted, or in a hybrid deployment encompassing some or all of these. Business Source License (BSL) but Source Available. Full commercial-grade support directly from CockroachDB
FULL AWS VENDOR LOCK-IN. No multi-cloud, hybrid, or on-premises deployment options. Proprietary DPU pricing model. PostgreSQL wire compatibility allows some code portability, but feature gaps and AWS-only architecture restrict true deployment freedom
FULL AWS VENDOR LOCK-IN including to the AWS ecosystem (IAM, KMS, CloudWatch, etc.). No portability to other clouds or on-premises. MySQL/PostgreSQL compatibility enables data portability but not infrastructure portability
Joins
Executes fully distributed hash, merge, and lookup joins across arbitrary nodes with CockroachDB's advanced Cost-based Optimizer. Full standard SQL support for complex INNER, OUTER, LEFT, RIGHT joins across distributed tables
Standard SQL joins supported; executed on a single query processor per transaction (not parallelized across nodes). Suitable for moderate join complexity within single-QP execution constraints
SQL join support (INNER, OUTER, LEFT, RIGHT, CROSS). Standard PostgreSQL/MySQL cost-based optimizer. Query execution runs on a single compute instance and is not distributed across nodes
LDAP Support
NATIVE. Direct native support for external authentication systems like LDAP, Active Directory, GSSAPI, and OIDC
Only IAM-based authentication at GA. Traditional LDAP, Kerberos, and Active Directory authentication not natively supported
Supported on Aurora PostgreSQL via Kerberos/Microsoft Active Directory (AWS Managed Microsoft AD). IAM and password auth available. MySQL-compatible uses IAM and password authentication
Migrations
Uses MOLT (Migration Off Legacy Technology) Toolkit & change data capture (CDC): MOLT handles schema conversion/verification and CDC moves data out. PostgreSQL wire protocol compatibility enables lift-and-shift; shadow mode testing
LIMITED SUPPORT. AWS DMS not supported at GA. PostgreSQL wire-protocol helps code compatibility, but missing features (foreign keys, triggers, sequences, JSONB) require significant app and schema redesign. Not a drop-in PostgreSQL replacement
AWS DMS supports lift-and-shift from MySQL, PostgreSQL, Oracle, SQL Server. Schema Conversion Tool (SCT) for heterogeneous migrations. Babelfish for SQL Server workloads on Aurora PostgreSQL
Multi-Active
YES: FULLY MULTI-ACTIVE/MULTI-REGION; read/write and handle connection requests from any node in the cluster. All nodes are equal and active; any node can accept read and write traffic simultaneously.
PARTIALLY. Active-active within its 2-region constraint. Both regional endpoints simultaneously accept reads and writes with strong consistency
PARTIALLY. Fully multi-active. Single primary writer; read replicas are passive. No simultaneous multi-region write capability in standard Aurora
Multi-Data-Center Support
FULL. Connects geographically isolated, heterogeneous data centers (AWS, GCP, Azure, on-prem) into a single logical cluster, supported by features such as Physical Cluster Replication (PCR) and Logical Data Replication (LDR)
AWS-only. Fixed 3-location topology (2 active regions + 1 witness). Cannot span non-AWS infrastructure; no on-premises or third-party cloud support
AWS-only. Multi-AZ within a region (3 AZs) and Global Database option across AWS regions. No on-premises or non-AWS infrastructure support.
Multi-region Functionality / Multi-region Writes

ACTIVE-ACTIVE: Read/Write from any node in any region; built-in low-latency local access patterns and Survival Goals (e.g., ALTER DATABASE...SURVIVE REGION FAILURE) commands configure fault tolerance intent


True multi‑region, multi‑active writes: any node in any region can serve reads and writes while preserving serializable consistency guarantees

ACTIVE-ACTIVE; 2 active regions + 1 witness region. Synchronous replication with strong cross-region consistency. Regions must be same-continent; cross-continental latency makes synchronous consensus impractical


Any regional endpoint accepts writes simultaneously. Synchronous consensus ensures consistency. Limited to 2 active same-continent regions

Global Database option offers 1 primary (read/write) + up to 10 read-only secondary regions. Asynchronous replication and cross-region switchover with varying levels of latency


Writes to primary region only; secondaries are read-only. Write forwarding allows secondaries to forward writes to the primary, but increases latency and does not enable true concurrent multi-region writes

Replication
Built-in, automatic consensus replication using the Raft protocol; data is divided into ranges and replicated across nodes
Synchronous cross-region replication. Journal stores full post-images; active-active regions remain in sync. Witness region participates in commit quorum but does not serve traffic. No stale replica reads
Storage-level replication across 3 AZs, limited read replicas with lag. Global Database option: asynchronous storage-level replication across regions, with lag
Required Downtime
ZERO. Online schema changes, rolling upgrades, and cluster expansion occur without taking the data platform offline
ZERO. Fully serverless; no maintenance windows, patching downtime, or failover events. DDL runs asynchronously without locking tables
MINIMAL. Serverless v2 scales without downtime. Major version upgrades may require brief planned downtime. Global Database option promotion requires manual steps and a brief write interruption.
Resilience
Five 9s availability: Survives node/disk/rack/region failures automatically via Raft consensus, with zero data loss (RPO=0). Naturally resilient to outages with granular row-level control
Synchronous cross-region replication; auto-recovers from AZ and regional failures without manual intervention. Witness region ensures quorum without serving traffic. No manual failover needed
Replication across 3 AZs; auto-failover to read replica. Global Database option failover requires manual promotion; potential for data loss window at the secondary
Scale
Virtually unlimited horizontal scale-out. Automatic, seamless handling of growing datasets; increase storage and throughput capacity linearly simply by adding more nodes
Serverless; reads and writes scale independently and automatically. No sharding or instance upgrades. Limited to 2 active same-continent regions and 10,000-rows per transaction
Vertical scaling (instance upgrades) + horizontal read scaling (up to 15 read replicas). Write scaling requires Aurora Limitless (separate offering). Serverless v2 scales compute ACUs automatically
Schema Changes
FULLY ONLINE & NON-BLOCKING. Online transactional schema changes (add/alter columns, indexes, constraints) run in the background without locking tables with zero downtime. Designed for always‑on services
DDL runs asynchronously (non-blocking by design). CREATE INDEX ASYNC for zero-downtime index creation. DDL and DML cannot be mixed in the same transaction. Schema changes propagate asynchronously across the distributed system
Online DDL for many operations; some DDL (e.g., table rewrites) may cause brief locks depending on engine version and operation. Major changes require careful planning.
Security-Privacy-Compliance
RBAC, Encryption at Rest with Customer Managed Encryption Keys (CMEK), TLS encryption in transit, IAM integrations, column-level encryption, and robust data-masking natively. Fine-grained encryption at cluster, database, table, or partition levels. Certified SOC 2 Type II and SOC 3, PCI-DSS, HIPAA, and ISO 27001-27017-27018 compliant, with ISO 42001 (Responsible, Ethical, and Safe AI Governance) pending. CockroachDB CIS Benchmarks to deploy hardened CockroachDB configurations. Comprehensive support for GDPR and DORA compliance
IAM-based authentication, encryption at rest and in transit, VPC/PrivateLink, KMS customer-managed keys, AWS Backup
Encryption at rest (AES-256/KMS) and in transit (TLS). VPC isolation, IAM auth, Kerberos/AD/LDAP (PostgreSQL), row-level security, audit logging. SOC 1/2/3, PCI DSS, ISO 27001 compliant
SQL Compatibility
HIGH. PostgreSQL Wire Compatible: Uses PG wire protocol; strong ANSI SQL with complex queries, joins, window functions, triggers, stored procedures, and UDFs. Supports spatial data, extensions, syntax; most apps connect with minimal or no changes
PARTIAL. PostgreSQL wire protocol; core SQL works (ACID, joins, indexes, DML). Missing: foreign keys, triggers, PL/pgSQL, views (initial GA), sequences, JSONB, most extensions, temporary tables. DDL must run asynchronously.
HIGH. Full MySQL or PostgreSQL compatibility. Stored procedures, triggers, foreign keys, views, sequences, extensions (pgvector, PostGIS, etc.), UDFs. Most apps migrate without code changes.
Stored Procedures
SUPPORTED AND MATURE. PL/pgSQL and other languages such as Python and Perl support deep procedural logic, autonomous transactions, and complex business rule enforcement. Supports user-defined stored procedures
NOT SUPPORTED. SQL-based functions are available, but PL/pgSQL and other procedural languages are not. Complex logic must be moved to the application layer or AWS Lambda
SUPPORTED via PL/pgSQL, PL/Perl, PL/Python on PostgreSQL-compatible; MySQL-compatible also supports stored procedures. Full procedural language support for complex database-side logic
Transaction Performance / Isolation Levels

Optimized for OLTP with strong consistency; cross‑region transactions maintain data correctness. Optimizations like Parallel Commits drop distributed execution overhead to a single network round-trip for most transactions


Enforces strict Serializable isolation exclusively, the strongest isolation level, to ensure zero data anomalies under heavy parallel traffic, and Read Committed

Low-latency multi-region reads and writes via OCC (lock-free). Low-contention workloads excel; high-contention workloads (hot keys, counters, frequent small-range updates) see high abort/retry rates. 10,000-row limit constrains bulk ops


Strong Snapshot Isolation only (equivalent to PostgreSQL's Repeatable Read). Serializable isolation is not supported; applications requiring it require significant rewrites

Optimized for single-region OLTP performance; cross-region writes bottlenecked by single-writer model and asynchronous replication to secondary regions


Multiple levels: Read Uncommitted, Read Committed (MySQL default), Repeatable Read, and Serializable. Standard per-engine PostgreSQL/MySQL isolation behavior

Triggers & Deferrable Constraints
FULLY SUPPORTED. Supports triggers and deferrable constraints across all deployment models
NOT SUPPORTED. No trigger support of any kind. Event-driven logic must be implemented at the application layer or via AWS services (e.g., EventBridge). Deferrable constraints are unavailable
FULLY SUPPORTED (for PostgreSQL/MySQL). Row-level and statement-level triggers, BEFORE/AFTER, INSTEAD OF; deferrable constraints all available.
Vector Search
BUILT-IN NATIVE SUPPORT via VECTOR data type, scalable distributed HNSW/IVF indexing, and pgvector (the industry standard for vector similarity search). CockroachDB's C-SPANN provides distributed vector indexing (ANN) at scale; available across all tiers
NOT SUPPORTED. pgvector and all PostgreSQL extensions are unsupported. Applications requiring vector search must use a separate AWS service (e.g., OpenSearch, RDS PostgreSQL with pgvector)
SUPPORTED via the pgvector extension on Aurora PostgreSQL. Enables vector similarity search, AI embeddings, and LLM use cases via pgvector
Writes and Query Routing
Every node is a gateway to the entirety of the database for unlimited reads and writes in any region. Any node can accept SQL queries; a Distributed Optimizer routes work to the right ranges/replicas based on locality and cost
Any regional endpoint accepts both reads and writes. AZ-local routing provides low latency. Stateless query processors distribute work with no single-writer bottleneck.
Single primary writer; all writes must target the primary endpoint. Read replicas handle reads only unless write forwarding is enabled, which routes writes through the primary and adds latency
PRICING
Commercial Enterprise: Simple, straightforward pricing, plus the ability to tie data to a location to avoid egress costs. Free for single-node/dev. Free Community Tier
Serverless consumption: Compute, Read, and Write DPUs billed separately. Pay-for-use; scales to zero. Pricing noted by users as complex and difficult to predict without production testing; high-contention workloads may incur unexpected costs
Instance-based (on-demand or reserved) + storage per GB-month + I/O charges. I/O-Optimized tier eliminates per-I/O charges. Reserved instances save up to 66%. Enterprise support starts at $5,500/mo.

Comparison data as of June 2026

Databases and platform freedom

CockroachDB is architected to give you the freedom to deploy your database anywhere: Any private or public cloud, across multiple clouds, using our innovative Bring Your Own Cloud (BYOC) offering, on premises, self-hosted, or in a hybrid deployment encompassing some or all of these. Use the best solution for your workloads without cloud provider or deployment model lock-in.

Group 19591

Freedom from lock-in

Make smart use of your existing resources with CockroachDB’s hybrid-cloud capabilities. AWS Aurora won’t let you deploy in a hybrid environment

Group 19592

Freedom of choice

Pick any (or multiple) providers and run self-deployed or as-a-service. Because no one should have to be locked into a single provider

Group 19593

Freedom to grow

Effortlessly scale and take control of your workloads. Avoid the significant egress costs often seen when moving data with AWS Aurora

Read the guide

CockroachDB vs Amazon Aurora

1. Executive Summary

+

2. Introduction: Why Enterprises Choose Distributed SQL

+

3. Database Architecture Determines Distributed SQL Capabilities

+

4. Resilience, Availability & Disaster Recovery

+

5. Scalability

+

6. Flexible Deployment

+

7. Customer Experience

+

8. Conclusion: CockroachDB – Distributed Without Compromise

+