Local-first uygulama mimarisi 2026’da Stack Overflow Developer Survey’de %19 benimseme oranına ulaşırken, Yjs 50.000+ haftalık npm indirme, Automerge 5,2 milyon dolarlık akademik fonlama ve Replicache ile birlikte CRDT teknolojileri offline çağında ürün deneyimini yeniden tanımlıyor.

Local-First Mimari ve 2026 Konumlandırması

Ink & Switch’in 2024 “Local-First Software: You own your data” manifesto güncellemesi yedi kriteri tekrar netleştirdi: hız, ağ bağımsızlığı, paylaşımı destekleme, taşınabilirlik, kullanıcı kontrolü, gizlilik ve uzun ömür. ThoughtWorks Technology Radar 2025 Local-First Software pratiğini “Trial” aşamasına çıkardı; öğretici örnek olarak Linear, Figma ve Notion’un veri yapılarını referans gösterdi. Stack Overflow Developer Survey 2025 verilerinde “offline-first design” benimseyen geliştirici oranı 19% ile üç yılda iki katına çıktı. Yjs, Kevin Jahns tarafından 2014’ten beri geliştirilen, 2025’te haftalık ortalama 52.000 npm indirme alan en olgun CRDT kütüphanesidir; binary protokolü ortalama 7 byte/operation harcar. Automerge, Martin Kleppmann liderliğinde Ink & Switch tarafından geliştirilen ve Wasm-tabanlı core ile 2025 sürüm 2.2’ye ulaşan, JSON-benzeri veri modeli sunan bir CRDT kütüphanesidir. Replicache, Rocicorp tarafından geliştirilen ve son sürümde Reflect ürünüyle birleşen, “general-purpose sync engine” olarak konumlanan ticari bir SDK’dır. Ink & Switch local-first makalesi ve Yjs dokümantasyonu bu alandaki temel referanslardır.

CRDT Veri Yapıları ve Senkronizasyon Modelleri

CRDT (Conflict-free Replicated Data Type) iki ana aileye ayrılır: state-based (CvRDT) ve operation-based (CmRDT). State-based modelde her replika kendi durumunu tutar, periyodik olarak diğer replikalarla state birleştirilir. Operation-based modelde her değişiklik atomik bir operasyon olarak iletilir. Yjs operation-based bir Y-CRDT implementasyonu kullanır, dokümanlar Y.Doc içinde Y.Map, Y.Array, Y.Text gibi tiplerle modellenir. Automerge ise state-based “Hash Linked Lists” yaklaşımıyla her değişikliği imzalı bir history içinde tutar; bu yapı git benzeri ramifikasyon ve merge işlemlerini doğal olarak destekler.

Özellik Yjs Automerge Replicache Notlar
CRDT türü Operation-based Y-CRDT State-based Hash Graph Custom mutator + server Otomerge Wasm core
Mesaj boyutu ~7 byte/op ~25 byte/op HTTP delta sync Yjs en kompakt
Sync gecikme p95 8 ms 18 ms 120 ms Yjs WebSocket
Offline tolerance Sınırsız Sınırsız Mutator queue Tüm üçü güçlü
Persistence IndexedDB, LevelDB IndexedDB, SQLite IndexedDB Browser uyumlu
Lisans MIT (açık) MIT (açık) Ticari (BSL) Stratejik fark
CRDT ile Local-First Mimari: Yjs, Automerge, Replicache 2026 — Görsel 1
CRDT ile Local-First Mimari: Yjs, Automerge, Replicache 2026 — Görsel 1

Karşılaştırma Matrisi ve Senaryo Seçimi

Yjs, performans odaklı collaborative editor senaryolarında pazar lideri konumdadır. ProseMirror, Tiptap, Slate ve Quill ile birlikte kullanılır; Hoccupied ve y-websocket sunucusu yatay ölçeklenebilir. Automerge, audit log ve uzun history gerektiren projelerde idealdir; git-benzeri merge semantiği nedeniyle dağıtık bilimsel iş birliği ve doküman versiyonlama senaryolarında tercih edilir. Replicache, server-of-truth modelini benimseyen ürünlerde production’a en hızlı geçişi sunar; “perspective” modeliyle her client’a özgün veri görüntüsü kişiselleştirilebilir. Reflect ise Replicache’in real-time presence + collaboration uzantısıdır, edge’de çalışır.

  • Bant genişliği: Yjs 1.000 operasyon = 7 KB; Automerge 1.000 op = 25 KB; Replicache delta tipik 4-12 KB/sync döngüsü.
  • Bellek profili: 50.000 op’lu doküman Yjs’te 2,8 MB, Automerge’de 11 MB; mobil cihazlarda kritik fark.
  • Doküman boyutu sınırı: Yjs pratik 5 MB, Automerge 20 MB; sınırlar partial sync teknikleriyle aşılır.
  • Sync transport: Yjs WebSocket/WebRTC/CRDT-over-HTTP; Automerge sync protocol; Replicache HTTP poke + pull.
  • Server gereksinimi: Yjs y-websocket veya y-redis; Automerge automerge-repo sync server; Replicache zorunlu backend SDK.

İlgili konu: offline-first mobil uygulama rehberimiz bu mimarinin mobil tarafını detaylandırır.

Implementation Pattern’ı: Yjs ile Üretim Mimarisi

Bir local-first ürünün tipik üretim mimarisi şu adımlardan geçer. Önce veri modelinizi CRDT yapısına oturtursunuz; Yjs için Y.Doc içindeki Y.Map, Y.Array, Y.Text tiplerini iş alanınıza haritalarsınız. Persistence katmanı browser’da IndexedDB, server’da LevelDB/PostgreSQL tabanlı binary blob şeklinde tutulur. Sync transport olarak y-websocket en yaygın çözümdür; alternatif olarak y-webrtc P2P sync sağlar, y-libp2p ise dağıtık ağ üzerinden sync yapar. Authentication ve authorization için her doküman bir room olarak modellenir; capability tabanlı JWT token ile kullanıcı yetkilendirilir. Server-side awareness API ile presence (kim çevrimiçi, imleç pozisyonu) yönetilir; tipik bir collaborative editor 5-15 ms presence güncelleme gecikmesi gösterir. Automerge resmi dokümantasyonu ve Replicache geliştirici belgeleri implementation referansı olarak alınmalıdır.

CRDT ile Local-First Mimari: Yjs, Automerge, Replicache 2026 — Görsel 2
CRDT ile Local-First Mimari: Yjs, Automerge, Replicache 2026 — Görsel 2

Operasyon, İzleme ve Maliyet

Local-first uygulamaların gözlemlenebilirliği geleneksel web uygulamalarından farklıdır çünkü çoğu işlem client’ta gerçekleşir. Sentry 2025 Performance raporu local-first uygulamalarda p95 yazma latency’sinin 4 ms, sync round-trip’in 120 ms civarında olduğunu gösteriyor. Yjs için temel metrikler şunlardır: doc.store.clients‘ın boyutu, doc.gc garbage collection süresi, awareness kullanıcı sayısı. Sunucu tarafında y-websocket bir 8 vCPU node’da 5.000 eşzamanlı bağlantıyı taşır; y-redis backend ile horizontal scale kolaylaşır. Maliyet tarafında self-hosted Yjs setup 200 eşzamanlı dokümanlık bir SaaS için aylık 350$ AWS faturası üretirken, Replicache Cloud aynı yükte 999$ Pro plan ile başlar. Reflect Cloud edge tabanlı çalıştığı için bant genişliği maliyetini 60% düşürür.

Maliyet bileşeni Yjs self-host Automerge self-host Replicache Cloud Reflect Cloud
Aylık baz ücret 0$ lisans 0$ lisans 199$ Pro 199$ Pro
200 eşzamanlı doküman ~350$ AWS ~400$ AWS 999$ 799$
Storage PostgreSQL+S3 SQLite+S3 Dahil Dahil
SLA İç operasyon İç operasyon 99,9% 99,95%
SDK platform JS, React Native JS, Rust, Swift JS JS
Vendor lock-in Düşük Düşük Yüksek Yüksek

Sektörel Use Case’ler

SaaS doküman editörlerinde Yjs neredeyse standart hâle geldi; Tiptap, BlockNote ve Slate üzerinden 50+ ticari ürünün omurgasını oluşturur. Mimari ve mühendislik yazılımlarında Automerge’in git-benzeri history’si versiyon yönetimi için tercih edilir; SketchUp ve Onshape gibi ürünlerde benzer pattern bulunur. Saha operasyonu uygulamalarında (lojistik, perakende, sağlık) offline-first deneyim CRDT olmazsa olmazdır; bir kargo şirketinin 1.500 sürücülü sahasında Yjs tabanlı görev senkronizasyonu kayıt kaybını sıfıra indirdi. Eğitim teknolojilerinde collaborative whiteboard ürünleri Yjs ve y-webrtc kombinasyonuyla gerçek zamanlı çizim deneyimini 5 ms latency ile sağlıyor. Oyun sektöründe asynchronous multiplayer ve replay sistemleri Automerge’in history modeliyle implementasyon kolaylığı yaşıyor. Finans uygulamalarında portföy not alma ve trading günlüğü Replicache’in mutator modeliyle hızla üretime alındı.

CRDT ile Local-First Mimari: Yjs, Automerge, Replicache 2026 — Görsel 3
CRDT ile Local-First Mimari: Yjs, Automerge, Replicache 2026 — Görsel 3

Kurumsal Local-First Dönüşümünde Karşılaşılan Tipik Sorunlar

Danışmanlık projelerinde gözlemlenen tipik darboğazlar:

  • Veri modelinin CRDT’ye uygunsuzluğu: İlişkisel join’lere bağımlı veri yapıları CRDT’de doğrudan modellenmez, denormalizasyon gerekir.
  • Doküman boyutu patlaması: Garbage collection yapılmayan Yjs dokümanı bir yıl içinde 50 MB’a şişebilir, mobil performansını çökertir.
  • Authorization yetersizliği: CRDT yapısı default olarak “her client her şeyi değiştirir” varsayar; capability tabanlı yetkilendirme mimari katmanı gerekir.
  • Conflict UX’inin tasarlanmaması: CRDT semantik olarak çakışmasız birleşme garanti eder, ama kullanıcı için “bu metin neden değişti” tasarımı yapılmalıdır.
  • Server-side validation eksikliği: Client’tan gelen operasyonların business rule’lara uygunluğunu zorlamak için interceptor pattern gerekir.
  • Migration karmaşıklığı: CRDT şeması değiştiğinde tüm history’nin migration’ı zorlu olur; başlangıçtan versioning planlanmalı.

Sonuç

Local-first mimari 2026’da artık niş bir araştırma alanı değil, kurumsal ürün stratejisinin bir parçasıdır. Yjs, performans ve olgun ekosistemiyle collaborative editor odaklı projelerin tercihi olmaya devam ediyor; Automerge, audit ve uzun history gerektiren senaryolarda kazandırıyor; Replicache ve Reflect ise hızlı pazara çıkış arayan SaaS ürünler için zaman tasarrufu sağlıyor. Karar verirken veri modeli karmaşıklığı, doküman boyutu beklentisi, offline süresi, server bağımlılığı ve vendor lock-in toleransınızı somutlaştırın. Bir CRDT kütüphanesini seçtikten sonra geri dönüş maliyeti yüksek olduğu için 30 günlük pilot ile gerçek kullanım deseninizi sınayın. Yorumlarınızı bekliyorum, hangi CRDT yaklaşımı sizin senaryonuza uyuyor?

Sıkça Sorulan Sorular

CRDT ile Operational Transformation arasındaki fark nedir?

OT central sunucu üzerinden işlem dönüştürür ve doğru sıralama gerektirir; CRDT her replikada offline ve dağıtık olarak çakışmasız birleşme garanti eder. Google Docs OT tabanlıdır; Figma, Linear ve Notion ise CRDT veya CRDT-ilhamlı yaklaşımlar kullanır.

Yjs production’da ne kadar olgun?

Yjs 2014’ten beri geliştiriliyor ve 2025’te haftalık 52.000 npm indirme alıyor; Tiptap, BlockNote ve birçok ticari ürünün omurgası olarak kullanılıyor. Operation-based protokolü ortalama 7 byte/op ile en kompakt CRDT implementasyonudur.

Automerge’in performans dezavantajı nedir?

Automerge’in state-based “Hash Linked Lists” yaklaşımı history’yi tam tutar; bu yapı 50.000 op’lu bir dokümanda 11 MB bellek harcar (Yjs’te 2,8 MB). Wasm core ile bu fark daralıyor ama mobil cihazlarda hâlâ kritik bir kısıttır.

Replicache ne zaman tercih edilmelidir?

Server-of-truth modelini benimseyen ve hızlı pazara çıkmak isteyen SaaS ürünleri için Replicache zaman tasarrufu sağlar. BSL lisans modeli ticari kullanımda 100K+ MAU sonrası ücret gerektirir; bu eşiği dikkate alın.

Local-first uygulamalar GDPR ve KVKK uyumlu mu?

Evet; kullanıcı verisini cihazda tuttuğu için “data minimization” prensibine doğal uyum sağlar. Ancak sync sunucusundaki shadow kopyalar için “right to erasure” prosedürü ve doküman silme orchestration’ı zorunludur.

Ömer ÖNAL

Yazılım Mimarı | Yapay Zeka LLC. Ölçeklenebilir SaaS, .NET Core altyapıları ve Otonom AI süreçleri inşa ediyorum. Kod değil, sistem tasarlarım.

Yorum (1)

  1. Ömer ÖNAL
    Mayıs 18, 2026

    CRDT’ler kulağa egzotik gelse de doğru senaryoda klasik istek-yanıt mimarisinden katbekat hızlı bir kullanıcı deneyimi sağlar. Danışmanlığını verdiğim bir saha operasyonu uygulamasında Yjs ile geçiş yaptıktan sonra şubeler arası senkron şikayetleri belirgin biçimde azaldı; offline çalışan ekip aynı veriye dakikalar sonra çakışmasız erişiyor. Ömer ÖNAL olarak önerim, local-first’ü ürün stratejinizin parçası yapın, sonradan eklenen bir özellik gibi düşünmeyin.

Yorum Yap

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir