PostgreSQL vs CockroachDB 2026: Distributed SQL Karşılaştırması
CockroachDB nedir sorusunun en kısa cevabı şudur: Google Spanner’ın açık-kaynak ruhundan ilham alan, yatay ölçeklenebilen, çoklu-bölge (multi-region) dağıtık bir SQL veritabanıdır; PostgreSQL wire-protocol uyumluluğu sayesinde mevcut sürücülerle konuşur ama altında serializable izolasyon, otomatik shard yönetimi (range-based) ve Raft tabanlı replikasyon çalıştırır. 2026 itibarıyla CockroachDB v24.x dağıtımı, PostgreSQL 17 ile aynı uygulamaya bağlanabiliyor görünse de mimari katmanda tamamen farklı bir yarışta koşar: PostgreSQL tek-düğüm OLTP’de kraldır, CockroachDB ise küresel veri yerelliği ve sıfır kesintili ölçeklemede konumlanır. Bu rehber, iki sistemi performans, fiyat, operasyon yükü ve gerçek üretim senaryoları üzerinden karşılaştırır; karar çerçevesi sunar.
Stack Overflow Developer Survey 2024’e göre PostgreSQL, dünyada en sevilen veritabanı kategorisinde dördüncü kez üst üste birinciliği aldı (yaklaşık %49 kullanım payı). CockroachDB ise CNCF graduated/incubating ekosistemine yakın bir hareketle GitHub’da yaklaşık 30K yıldız ile distributed-SQL kategorisinde Yugabyte ve TiDB ile birlikte üç ana oyuncudan biri konumunda. Karşılaştırma yaparken “hangisi iyi” sorusunu bırakıp “hangi yük profili için doğru” sorusuna geçeceğiz.

CockroachDB Nedir, PostgreSQL’den Mimari Olarak Nerede Ayrışır
PostgreSQL, 1986’da Berkeley’de doğan ve 1996’dan beri açık-kaynak topluluk yönetimiyle gelişen, ACID garantili, multi-version concurrency control (MVCC) kullanan ilişkisel veritabanıdır. Tek-düğüm temellidir; yüksek erişilebilirlik için streaming replication, logical replication, Patroni veya pg_auto_failover gibi dış araçlarla genişletilir. CockroachDB ise Cockroach Labs tarafından 2015’te v1.0 ile çıkmış, Spanner’ın TrueTime’sız bir varyantını HLC (Hybrid Logical Clock) ile uygulayan, yerel olarak yatay ölçeklenebilir bir motordur.
Birincil ayrım katmanı şudur: PostgreSQL bir veriyi tek bir birincil düğümde tutar ve scale-out için sharding (Citus uzantısı), read replica ya da partitioning gerektirir. CockroachDB ise tabloyu otomatik olarak range‘lere (varsayılan 512 MiB) böler, her range’i Raft konsensüs ile en az 3 düğüme replike eder, sorguları en yakın replikaya yönlendirir. Bu, küresel okuma gecikmesini düşürür ama her yazıyı çoğunluk onayı (quorum) bekletir.
İkinci kritik fark: izolasyon seviyesi. PostgreSQL varsayılan READ COMMITTED’tır; SERIALIZABLE seçilebilir ama uygulamada nadirdir. CockroachDB ise varsayılan olarak SERIALIZABLE izolasyonu zorlar — bu, anomalileri uygulama kodunda kovalamamayı sağlar ama yüksek-eşzamanlı yazma çakışmalarında retry’ları artırır. v23.2’den itibaren READ COMMITTED de opsiyonel hâle geldi, böylece migration sürtünmesi azaldı.
| Boyut | PostgreSQL 17 | CockroachDB 24.x |
|---|---|---|
| Mimari | Tek-yazıcı, MVCC | Dağıtık, range-sharded, Raft |
| Varsayılan izolasyon | READ COMMITTED | SERIALIZABLE |
| Yatay ölçek | Sharding eklentisi (Citus) ile | Yerel, otomatik |
| Multi-region yazma | Manuel, karmaşık | Yerel feature (REGIONAL BY ROW) |
| Failover süresi | 10-60 sn (Patroni) | ~9 sn (Raft lease transfer) |
| Wire protocol | libpq | libpq uyumlu (PG protokolü) |
| Lisans | PostgreSQL License (BSD-benzeri) | CockroachDB Community / Enterprise (CCL) |
Performans ve Latency: Tek-Düğüm OLTP’den Multi-Region’a
Tek-düğüm karşılaştırmasında PostgreSQL ezici şekilde önde. Cockroach Labs’ın kendi yayımladığı 2024 TPC-C benchmark’larında, eşit hardware’de (16 vCPU, NVMe SSD) PostgreSQL yaklaşık 12.000-14.000 tpmC üretirken tek-düğüm CockroachDB ~4.500-5.500 tpmC bandında kalır. Bunun nedeni Raft yazma yolu, RocksDB’den evrilmiş Pebble storage engine’in WAL fsync maliyeti ve dağıtık SQL planlayıcısının ek katmanı.
Ama denklem 9 düğüme çıktığında tersine döner. CockroachDB doğrusala yakın ölçeklenir: 9-düğümlü cluster’da yaklaşık 38.000-42.000 tpmC bandı raporlanmıştır. PostgreSQL aynı yükü tek-düğümde tutmaya çalışırsa CPU/IO duvarına çarpar; Citus ile sharded yapıldığında benzer rakamlara ulaşır ama cross-shard transaction’larda iki-fazlı commit (2PC) gecikmesi devreye girer.
Multi-region yazma senaryosunda CockroachDB’nin REGIONAL BY ROW tablo özelliği, satırı kullanıcının ev-bölgesine pin’ler — örneğin EU kullanıcısının satırı eu-west-1 replikalarında birincil olur, p99 yazma gecikmesi 8-15 ms civarında kalır. Aynı senaryoyu PostgreSQL’de kurmak (logical replication + uygulama-katmanı routing) genelde 50-200 ms gecikme ve eventual consistency demektir.
| Senaryo | PostgreSQL p99 (ms) | CockroachDB p99 (ms) |
|---|---|---|
| Tek-düğüm, küçük PK okuma | ~0.5-1.5 | ~2-4 |
| Tek-düğüm, küçük UPDATE | ~1-3 | ~5-10 |
| 3-düğüm, aynı bölge UPDATE | ~3-8 (sync replica) | ~6-12 |
| Multi-region UPDATE (3 kıta) | ~150-300 (logical repl.) | ~80-180 (yerel sürücü) |
| REGIONAL BY ROW UPDATE | Uygulanmaz | ~8-15 |
| Tablo scan, 100M satır | ~25-60 sn (paralel) | ~12-25 sn (paralel, çok-düğüm) |
Throughput tarafında: 32 vCPU bir PostgreSQL 17 düğümü, pgbench TPC-B-benzeri yükte yaklaşık 75.000-90.000 TPS üretir. 9 düğümlü CockroachDB cluster’ı kbench üzerinde 120.000-160.000 TPS bandına ulaşabilir; ama düğüm başına TPS daha düşüktür — toplam kapasite yatay ölçek üzerinden gelir. Yani PostgreSQL “dikey güçlü, yatay zayıf”; CockroachDB tersi.
Veri Tutarlılığı, İzolasyon ve Anomali Profili
PostgreSQL ACID’i tek-düğüm bağlamda kusursuz uygular. SERIALIZABLE seçildiğinde Serializable Snapshot Isolation (SSI) kullanılır; çoğu uygulamada bu fazlasıyla yeterlidir. Replica’lara okuma gönderildiğinde ise async streaming replication varsayılan olduğu için stale read olasılığı doğar. Synchronous replication açılırsa primary yazma latency’si ikiye katlanır.
CockroachDB tüm yazıları çoğunluk-onaylı Raft ile yapar; bu, asla “stale primary” görmemenizi sağlar (lease transfer mekaniğiyle). SERIALIZABLE varsayılan olduğundan write-skew ve phantom anomalileri uygulama tarafında kovalamanız gerekmez — ama uygulamanız retry-aware olmalıdır. SDK’ler (özellikle Cockroach Labs’in resmi cockroach-go ve cockroach-js sürücüleri) 40001 SQLSTATE kodunu otomatik retry ile sarar.
- PostgreSQL anomali profili: Replica lag → stale read; yüksek-yarış UPDATE’ler → deadlock; cross-shard (Citus) commit → 2PC fail edebilir.
- CockroachDB anomali profili: Yüksek-yarış aynı-anahtar yazma → transaction retry; clock skew >500ms → uncertainty interval büyür, latency cezası.
- Ortak: İkisi de WAL/Raft log korruption durumlarında manuel kurtarma gerektirir; backup stratejisi (pg_basebackup, BACKUP TO …) ikinci savunma hattı olmalı.
NIST’in distributed-systems best-practice rehberlerine ve Jepsen analiz tarihçesine bakıldığında: Kyle Kingsbury’nin 2017 ve 2020 raporları sonrası CockroachDB Jepsen testlerini SERIALIZABLE seviyesinde geçen sayılı sistemden biri. PostgreSQL Jepsen testlerini her zaman geçer çünkü zaten tek-düğümdür — ama bunu çok-düğüme çıkarmak ekstra mühendislik demektir.

Yüksek Erişilebilirlik, Failover ve Operasyon Yükü
PostgreSQL’de HA kurmak, ürünün kendisinden çok ekosisteme bağlıdır: Patroni + etcd, repmgr, pg_auto_failover, ya da yönetilen servis (RDS, Cloud SQL, Aiven). Failover süresi tipik olarak 10-60 saniye bandındadır; manual müdahale yoksa “split brain” riski tasarımın doğru olmasına bağlıdır. Yedek alma için pg_basebackup veya pgBackRest, point-in-time recovery (PITR) için WAL arşivleme zorunludur.
CockroachDB’de HA “ürünün kendisi”dir. 3-düğümlü cluster bir düğüm kaybını otomatik tolere eder; lease transfer ~9 saniye içinde tamamlanır; uygulama tarafında bağlantı havuzu yeniden kurulur ve sorgular devam eder. Backup için yerleşik BACKUP TO 's3://...' komutu vardır, incremental backup ve geri yükleme tek SQL ile çalışır.
| Operasyon | PostgreSQL | CockroachDB |
|---|---|---|
| HA kurulumu | Patroni/repmgr + etcd | Yerleşik, 3 düğüm yeter |
| Rolling upgrade | Logical repl. veya read replica swap | Yerleşik, downtime’sız |
| Backup | pgBackRest, WAL-G | BACKUP / RESTORE SQL komutu |
| PITR | WAL arşivi ile | AS OF SYSTEM TIME ile native |
| Şema değişikliği | pg_repack, online DDL’in çoğu | Online DDL yerleşik (transactional) |
| Monitoring | pg_stat_*, Prometheus exporter | Yerleşik DB Console + Prom endpoint |
İşletim açısından PostgreSQL “olgun ama parçalı”: her HA aracının kendi öğrenme eğrisi var. CockroachDB “tek paket”: kurulduğunda failover, rebalancing, backup hep aynı binary’nin parçası. Bunun bedeli, debug edilmesi gereken davranışın daha gizli olması — örneğin range hotspot oluşunca operatör SHOW RANGES ile manuel müdahale etmeyi öğrenmeli. Veri platformu kurarken bu işletim yükünü hafifletmek için PostgreSQL performans optimizasyonu ve replikasyon stratejileri ayrı bir disiplindir.
SQL Uyumluluğu, Sürücüler ve Migrasyon Sürtünmesi
CockroachDB’nin pazarlama argümanının kalbinde “PostgreSQL uyumlu” vaadi yatar. Wire-protocol seviyesinde bu doğru: psql, psycopg, pgx, JDBC, Sequelize, Prisma, ActiveRecord — hepsi bağlanır. Ama SQL gramerinde önemli boşluklar vardır.
- Desteklenmeyen / sınırlı: Stored procedure (PL/pgSQL kısıtlı), trigger (v23+ yeni), table inheritance, LISTEN/NOTIFY, materialized view’da bazı senaryolar, full-text search uzantısı (tsvector sınırlı).
- Farklı davranan: Sequence (DEFAULT olarak unique_rowid önerilir), array operatörlerinin bir kısmı, json path bazı fonksiyonları, regex performansı.
- CockroachDB’ye özel: REGIONAL BY ROW, AS OF SYSTEM TIME (historical query), SPLIT AT, EXPERIMENTAL_AUDIT, multi-region survival goals.
Pratikte: bir Django veya Rails uygulamasını CockroachDB’ye taşımak, ORM seviyesinde %85-95 sorunsuz çalışır. Ama PL/pgSQL fonksiyonu, partitioning trigger’ı veya pgvector eklentisi kullanan bir sistemde migrasyon planı haftalar alabilir. Cockroach Labs’in resmi cockroach-go ve cockroach-jdbc sürücüleri retry mantığını sarar; jenerik PostgreSQL sürücüleri ile çalışırken transaction retry uygulama katmanında ele alınmalıdır.
Vektör arama, AI özellik mağazaları veya RAG sistemleri planlıyorsanız PostgreSQL’in pgvector eklentisi çok güçlü; CockroachDB’de vektör desteği v23.2’den itibaren temel düzeydedir. Bu kategori için vector veritabanı karşılaştırma rehberi ayrı bir karar çerçevesi sunar.
Maliyet Modeli: Açık Kaynak, Yönetilen Servis, Total Cost of Ownership
PostgreSQL lisansı maliyetsizdir (PostgreSQL License, BSD-türevi). Maliyet, hardware + insan + yönetilen servis prim’inden gelir. Amazon RDS for PostgreSQL’de db.r6g.2xlarge (8 vCPU, 64 GB) on-demand fiyatı bölgeye göre ~$1.0-1.4/saat, multi-AZ %100 zam ile ~$2.0-2.8/saat bandında. Google Cloud SQL ve Azure Database for PostgreSQL benzer aralıklarda.
CockroachDB lisansı çift modelli: Community sürümü ücretsiz ama bazı enterprise özellikler (CDC, multi-region survival, encryption-at-rest) Cockroach Labs lisansı gerektirir. CockroachDB Serverless dedikleri yönetilen ürün, free-tier (5 GB, 50M RU/ay) sonrası kullanım bazlı; CockroachDB Dedicated ise düğüm-bazlı, küçük cluster ~$0.50-0.80/saat × 3 düğüm ile başlar.
| Senaryo | PostgreSQL aylık (USD, yaklaşık) | CockroachDB aylık (USD, yaklaşık) |
|---|---|---|
| Geliştirme / küçük prod (8 vCPU, single) | ~$700-1.000 (RDS multi-AZ) | ~$1.100-1.400 (Dedicated 3 düğüm small) |
| Orta ölçek prod (32 vCPU) | ~$2.500-3.500 | ~$3.000-4.200 (3x ~16 vCPU) |
| Multi-region 3 bölge (24/7) | ~$8.000-12.000 + read replica + logical repl. ops | ~$5.500-8.500 (9 düğüm, yerleşik) |
| Düşük trafik geliştirme | ~$50-100 (db.t4g.medium) | $0 (Serverless free tier, 5 GB) |
| Lisans maliyeti (self-hosted core) | $0 | $0 (community), Enterprise için anlaşma |
Total cost of ownership hesabında insan emeği genelde göz ardı edilir. PostgreSQL HA + multi-region kurulumunu in-house yapmak orta seviye bir DBA + bir SRE’nin yıllık ~0.3-0.5 FTE’sini emer. CockroachDB aynı topolojiyi yerleşik sunduğu için bu sayı düşer ama monitoring ve hot-spot debugging’in öğrenme eğrisi vardır. Karar, “hangi alanda mühendislik yatırımı yapacağız” sorusudur.

Ekosistem, Analitik Entegrasyonu ve Veri Pipeline
PostgreSQL ekosistemi 30 yıllık birikimle çok geniştir: pgvector, PostGIS, TimescaleDB, Citus, pg_partman, pg_stat_statements, foreign data wrappers (FDW) ile Snowflake/BigQuery/Mongo bağlantısı, Debezium ile CDC, logical replication ile Kafka entegrasyonu. Veri ekibiyle paylaşılan OLTP+light-OLAP yüklerde HTAP yaklaşımı için Citus + columnar combo güçlü bir seçenektir.
CockroachDB ekosistemi daha dar ama çağdaş: yerleşik changefeed (Kafka, Pulsar, webhook, cloud storage sink), Avro / JSON çıktı, dbt-cockroachdb adapter, Airbyte/Fivetran source connector. Akış işleme tarafında özellikle stream processing Flink Kafka Spark mimarisiyle eşleştiğinde changefeed → Kafka → Flink topology’si oldukça temiz çalışır. Lakehouse hedefiyle bir data lakehouse mimarisine veri akıtmak için ise hem CockroachDB hem PostgreSQL Debezium veya yerleşik CDC ile aynı kalitede entegre olur.
Analitik sorgular için ikisi de OLAP veritabanı değildir. Federated query motorları (Trino, Presto, Druid), kolonlu warehouse’lar (BigQuery, Snowflake) veya streaming SQL katmanı uygulamada kombinasyonun yarısıdır.
- Avantaj PostgreSQL: Uzantı zenginliği (pgvector, PostGIS, TimescaleDB), olgun ORM desteği, sayısız tutorial ve Stack Overflow cevabı.
- Avantaj CockroachDB: Yerleşik CDC, multi-region ile uyumlu changefeed, transactional schema değişikliği.
- Dezavantaj PostgreSQL: Multi-region yerel değil; sharding eklenti gerektiriyor (Citus); HA için harici araç.
- Dezavantaj CockroachDB: Uzantı yok (pgvector yerine sınırlı yerleşik destek); analitik motor olarak sınırlı; bazı PG fonksiyonları eksik.
Hangi Yük Profili İçin Hangisi: Karar Matrisi
Karar pratik olarak şu üç ekseni dolaşır: (1) coğrafya (tek bölge mi, multi-region mi), (2) ölçek profili (10K TPS altı mı, 50K+ mı), (3) ekip kapasitesi (PostgreSQL DBA mevcudiyeti ve operasyon olgunluğu).
| Senaryo | Önerilen | Neden |
|---|---|---|
| SaaS, tek bölge, 5K TPS, küçük ekip | PostgreSQL (managed) | Olgun, ucuz, ekosistem hazır |
| Fintech, multi-region, kıtalararası tutarlılık | CockroachDB | REGIONAL BY ROW, SERIALIZABLE varsayılan |
| Yüksek-OLTP, tek bölge, 30K+ TPS | PostgreSQL + Citus veya CockroachDB | Ölçek profili ve ekip yetkinliği belirler |
| AI/RAG, vektör + ilişkisel | PostgreSQL + pgvector | CockroachDB’de vektör desteği sınırlı |
| IoT, time-series ağırlıklı | PostgreSQL + TimescaleDB | Kolonlu sıkıştırma ve continuous aggregate |
| E-ticaret, küresel envanter, sıfır kesinti | CockroachDB | Yerleşik HA, transactional online DDL |
| Analitik ağırlıklı raporlama | İkisi de değil — Snowflake/BigQuery | OLTP motoru yanlış araç |
Pratik bir uyarı: CockroachDB “her şeyi çözer” gibi pazarlanır ama tek bölgede ve 10K TPS altında bir SaaS için Amazon RDS PostgreSQL + read replica çok daha hızlı kurulup işletilir. Tersi de doğru: tek-AZ PostgreSQL üzerinde 99.99% SLA vaat ediyorsanız, multi-region ihtiyacı çıktığında mimari borç patlar. Bu kararı, danışmanlık projelerinde Ömer Önal genelde “önümüzdeki 24 ay içinde multi-region veya 99.99%+ SLA vaadi var mı?” sorusuyla başlatır.
Veri modeli tarafında, NoSQL seçimleri ile distributed SQL arasındaki sınır da netleşmeli: tutarlılık garantisi gerekiyorsa CockroachDB; eventual consistency yeterliyse Cassandra/DynamoDB daha ucuza kapasite verir.
Güvenlik, Uyum ve Veri Yönetişimi
İki ürün de TLS-by-default, role-based access control (RBAC), row-level security (PostgreSQL’de RLS, CockroachDB’de policy yaklaşımı) sunar. PostgreSQL’in RLS özelliği multi-tenant SaaS için iyi olgunlaşmıştır; CockroachDB v23.2 sonrası benzer politika tabanlı kısıtlama getirmiştir ama olgunluk farkı sürmektedir.
Encryption-at-rest CockroachDB Enterprise özelliğidir; PostgreSQL’de bu genelde disk seviyesinde (LUKS, EBS encrypt) ya da pgcrypto eklentisiyle sütun seviyesinde uygulanır. Audit logging için CockroachDB EXPERIMENTAL_AUDIT komutu vardır; PostgreSQL’de pgaudit eklentisi standarttır. ENISA’nın 2024 veri-koruma rehberinde dikkat çekilen veri-yerelliği gereksinimleri (özellikle EU verisi için) CockroachDB’nin REGIONAL BY ROW özelliğiyle teknik olarak daha temiz çözülür; PostgreSQL’de bu uygulama katmanı sorumluluğudur.
KVKK ve GDPR uyumluluğu sadece DB değil, tüm veri akışı meselesidir. Veri kataloğu, lineage ve PII sınıflandırma için ayrı katmanlar gerekir — veri yönetişimi GDPR KVKK katalog ve domain-owned data mesh yaklaşımı bu denklemde DB seçiminden çok daha belirleyicidir.

Üretimde Sık Karşılaşılan Tuzaklar ve Çözüm Patternleri
PostgreSQL üretiminde en sık üç sorun: (1) autovacuum gecikmesi → table bloat; (2) connection pool patlaması → uygulama bağlantı sayısı PG max_connections’ı geçer ve hat çöker, PgBouncer veya pgcat şart; (3) yanlış kurulan logical replication → publisher/subscriber lag patlar.
CockroachDB üretiminde en sık üç sorun: (1) hot range — tek anahtar prefix’i (örn. monotonic ID) bir range’i yakar, SPLIT AT veya hash-sharded indeks gerekir; (2) clock skew >250ms → uncertainty interval büyür, latency tavan yapar, NTP/chrony sıkılaştırılmalı; (3) transaction retry oranı yükselir — SERIALIZABLE’da yarış varsa pessimistic locking pattern’i veya READ COMMITTED’a düşmek gerekir.
- Bağlantı yönetimi: İkisinde de uygulama tarafında bağlantı havuzu zorunlu. PG için PgBouncer; CockroachDB için yerleşik PG-proxy veya HAProxy + pgcat.
- İndeks stratejisi: PG’de B-tree + BRIN + GIN; CockroachDB’de inverted (JSONB için) ve hash-sharded primary key sıcak satırları dağıtmak için.
- Backup test: PG’de pgBackRest restore drill 90 günde bir; CockroachDB’de BACKUP/RESTORE testleri ayda bir staging’e.
- Migrasyon planı: PG → CockroachDB taşınırken pg_dump → import değil, AWS DMS veya Airbyte ile online replikasyon önerilir.
- Pipeline disiplini: Veri kalite kontrolleri (Great Expectations, Soda) ve transformasyon disiplini (dbt) DB seçiminden bağımsız olarak veri katmanının sağlığını belirler.
Çoğu ekip, CockroachDB’yi denedikten sonra “PostgreSQL kalsın, multi-region geldiğinde tekrar bakarız” sonucuna varır. Bu yanlış değil — sadece kararın doğru zamanını bekleyin. CockroachDB lehine karar verirken, “neden şimdi” sorusu net olmalı: regülasyon kaynaklı veri-yerelliği zorunluluğu, 99.99%+ SLA taahhüdü veya tek-bölgede üst sınıra dayanmış throughput.
Sık Sorulan Sorular
CockroachDB gerçekten PostgreSQL ile %100 uyumlu mu?
Hayır, yaklaşık %85-95 SQL ve wire-protocol uyumlu. Driver’lar ve çoğu ORM çalışır; ama PL/pgSQL stored procedure, tüm trigger senaryoları, LISTEN/NOTIFY, tablo inheritance ve bazı uzantılar (pgvector, PostGIS, TimescaleDB) ya sınırlı ya da yok. Üretime almadan önce uygulamanızın SQL kullanımını dökümante edip CockroachDB’nin cockroach demo ortamında smoke test yapmanız gerekir.
Tek bölgede CockroachDB’yi PostgreSQL yerine kullanmak mantıklı mı?
Genelde hayır. Tek-bölgede CockroachDB’nin Raft + dağıtık planlayıcı overhead’i, PostgreSQL’in tek-düğüm hız avantajını silmez. Operasyon basitliği ve yerleşik HA cazip gelebilir ama yönetilen PostgreSQL (RDS, Cloud SQL) zaten benzer kolaylığı sağlar. CockroachDB seçimi, multi-region veya çok-yüksek-yatay-ölçek hedefiyle anlamlıdır.
CockroachDB performansı PostgreSQL’e göre nasıl ölçeklenir?
Tek-düğüm karşılaştırmasında PostgreSQL yaklaşık 2-3 kat daha yüksek tpmC verir. Ama 6-9 düğüme çıktığında CockroachDB doğrusala yakın ölçeklenir; PostgreSQL aynı yükü ya Citus sharding ile dağıtmak ya da dikey yükseltmek zorundadır. 50K+ TPS multi-region OLTP için CockroachDB tasarımsal avantajlıdır; <50K TPS tek-bölge için PostgreSQL daha verimlidir.
Migrasyon zorluğu ne kadardır, kaç hafta sürer?
Basit Django/Rails uygulamasında ORM seviyesinde 2-4 hafta yeterli olabilir; SQL audit + retry-aware refactor + staging benchmark adımları gerekir. Karmaşık (PL/pgSQL fonksiyon, trigger, pgvector kullanımı olan) sistemlerde 3-6 ay realist bir takvimdir. Online migrasyon için AWS DMS, Airbyte CDC veya Debezium tabanlı dual-write geçişleri tercih edilir; “big-bang” geçiş kaçınılmazsa bakım pencereli pg_dump/import opsiyondur ama büyük veritabanları için saatler sürer.
CockroachDB ücretsiz mi, lisans modeli ne?
Core CockroachDB ücretsizdir (CockroachDB Community License — kaynak açık, source-available). Bazı enterprise özellikler (multi-region survival goals, encryption-at-rest, change data capture’ın bir kısmı, geo-partitioning) Enterprise lisans gerektirir; bunun fiyatı düğüm sayısı ve kullanım profiline göre Cockroach Labs ile pazarlık edilir. CockroachDB Serverless tarafında 5 GB depolama + 50M RU/ay free tier mevcuttur; üzerinde kullanım bazlı faturalandırma çalışır.
Sonuç: PostgreSQL Hâlâ Varsayılan, CockroachDB Spesifik Bir Silah
2026 itibarıyla pratik karar çerçevesi nettir: yeni bir veri katmanı planlıyorsanız varsayılanınız PostgreSQL olmalı. Tek-düğüm verimi, uzantı ekosistemi, ekip aşinalığı ve yönetilen servis olgunluğu kombinasyonu hâlâ rakipsizdir. Vaka %90’ında bu yeterlidir. CockroachDB’ye geçiş kararı, somut bir mimari ihtiyaca (multi-region tutarlılık, sıfır kesintili rolling upgrade, küresel veri-yerelliği) bağlanmalıdır — “ileride lazım olur” gerekçesi mühendislik borcu üretir.
CockroachDB’yi seçeceğiniz an, ürünü kendisinden bekleyeceğiniz şey de değişir: tek-düğüm en hızlı OLTP değil, yerleşik HA + multi-region SERIALIZABLE’dır. Bu iki ürünün “X vs Y” değil “tek-bölge ölçek vs küresel tutarlılık” eksenindeki konumlanmasını ekibe doğru anlatmak, sonraki 24 ayda 6-7 haneli mühendislik bütçesini doğru yönlendirir. Veri mimarisi tarafında karar net olmadığında, ekosistem genelinde big data işleme Spark Kafka pipeline veya distributed SQL geçişini birlikte değerlendirmek için danışmanlık formundan bir keşif görüşmesi planlayabilirsiniz.
Üçüncü ve son uyarı: hangi seçimi yaparsanız yapın, üretim hattını izleyen metrik panelini ve felaket kurtarma drill’lerini kararla aynı gün kurun. Çünkü “doğru DB” kararının değeri, ancak günlük operasyonda doğrulanır.
Ek dış kaynaklar ve resmi referanslar: PostgreSQL 17 resmi dokümantasyonu, CockroachDB resmi dokümantasyonu, Stack Overflow Developer Survey 2024, Jepsen analiz arşivi, Google Cloud Spanner mimari dokümanı, Raft konsensüs algoritması, ENISA veri koruma yayınları.










Ömer ÖNAL
Mayıs 16, 2026Veri mühendisliği projelerinde sıkça gördüğüm darboğaz: pipeline mimarisine yatırım yapmadan önce veri kalitesi metriklerinin baseline’ı yok. Great Expectations veya benzer bir validation katmanı ilk faza dahil edilirse, sonraki pipeline değişiklikleri tahmin edilebilir hale geliyor. Yorumlarınız ne yönde?