Figma, Notion, Linear, Google Docs gibi modern üretkenlik araçlarının ortak özelliği: gerçek zamanlı çoklu kullanıcı düzenleme. Bir doküman üzerinde 5-15 kişinin eş zamanlı yazması, kursorların gerçek zamanlı görünmesi, offline çalışma + senkron + çakışma çözümü — bunların hepsi CRDT (Conflict-Free Replicated Data Types) teknolojisinin omzunda duruyor. 2026 itibarıyla SaaS uygulamalarının %34’ü bir tür gerçek zamanlı kolaboratif özellik içeriyor; bu yetenek olmadan ürün rekabette geri kalıyor. Türkiye’de SaaS ürünlerin %21’i son 18 ayda kolaboratif özellik ekledi.
Bu rehberde CRDT mimarisini, Yjs ve Automerge kütüphanelerini, Liveblocks ve Partykit gibi SaaS çözümlerini, üretim performansını, Türkiye özelinde notları ve maliyet tablolarını somut sayılarla aktarıyoruz.
CRDT Nedir?
CRDT, dağıtık sistemlerde otomatik olarak çakışmaları çözen veri yapılarıdır. Klasik OT (Operational Transformation) tabanlı yaklaşımlardan farklı olarak merkezi koordinasyon gerektirmez. Avantajları:
- Peer-to-peer çalışabilir (sunucu opsiyonel).
- Offline mode tam destekli — internet kesintisinde de yazılabilir.
- Çakışmalar matematiksel olarak otomatik çözülür.
- Düşük latency (sunucudan onay beklemiyor).
- Tarihsel kayıt + undo/redo doğal olarak destekleniyor.
- Local-first software ile mükemmel uyumlu.
CRDT Tipleri
| Tip | Açıklama | Kullanım |
|---|---|---|
| G-Counter | Sadece artan sayaç | Like sayısı, ziyaret sayacı |
| PN-Counter | Artan + azalan | Inventory stoku |
| LWW-Register | Son yazan kazanır | Kullanıcı status mesajı |
| OR-Set | Observed-Remove set | Etiket, kategori listesi |
| RGA | Replicated Growable Array | Metin düzenleme (Yjs) |
| Yjs Y.Doc | Composite (map+array+text) | Doküman, JSON state |

Yjs: 2026 Standardı
Yjs, Kevin Jahns’ın geliştirdiği yüksek performanslı CRDT kütüphanesi. Tiptap, BlockNote, Quill, ProseMirror, Slate gibi editor’lerin altında çalışıyor. Notion (kısmen), Linear, Codeshare gibi ürünlerde üretimde.
Veri Yapıları
- Y.Map: Anahtar-değer çifti (JSON object benzeri).
- Y.Array: Listesi.
- Y.Text: Rich text + formatting (bold, italic).
- Y.XmlFragment: HTML/XML benzeri yapı (editor için).
Network Providers
- y-websocket: WebSocket üzerinden, kendi sunucunuza bağlanır.
- y-webrtc: Peer-to-peer (sunucu yok).
- y-indexeddb: Tarayıcıda local persistence.
- Hocuspocus: Yjs için resmi backend (Tiptap ekosistemi).
- Liveblocks: SaaS sunucu — kendi yazmadan.
- Partykit: Cloudflare Workers + Durable Objects tabanlı, edge.
Performans Karakteristikleri
- 10K karakterlik dokümanda Y.Doc bellek: ~120 KB.
- Yeni karakter ekleme: ≤ 0,3 ms.
- İki client arası sync: ≤ 50 ms (LAN), 200-500 ms (WAN).
- 1M+ tarihsel operation’lı dokümanda da hızlı (binary encoding).
- Compaction (garbage collection) optional.
- Awareness (cursor presence) latency target < 100 ms.
Automerge: Alternatif
Automerge, Ink & Switch ekibinin (Martin Kleppmann) geliştirdiği CRDT kütüphanesi. Local-first yazılım hareketinin yıldız projesi. Yjs’e göre:
- Daha akademik (formal correctness proofs).
- JSON-like API — daha sezgisel.
- Performans Yjs kadar değil ama 2024 v2 ile yaklaştı.
- Belge versiyon geçmişini güçlü saklar.
- Pazarda Yjs daha yaygın (editor ekosistemleri ile).

Üretim Mimarisi
Tipik bir kolaboratif uygulamanın stack’i:
- Frontend: Tiptap / ProseMirror / Lexical (Y.js binding ile).
- Persistence (browser): y-indexeddb (offline).
- Network: y-websocket veya Liveblocks/Partykit.
- Backend: Hocuspocus (Node.js) veya Liveblocks (managed).
- Storage: PostgreSQL (Y.Doc binary + metadata).
- Presence: Awareness API (kursorlar, kullanıcı listesi).
Frontend state mimari kararları için frontend state management rehberimize, gerçek zamanlı event akışı için event-driven mimari içeriğimize bakabilirsiniz.
Database Şeması
Bir Y.Doc tipik olarak:
document_id(UUID).yjs_state(bytea — binary state).updated_at(timestamp).last_user_id(referans).access_control(JSONB — kim okuyabilir/yazabilir).
Her güncelleme ya tüm state’i yazar (basit ama yavaş) ya da incremental update (sadece delta — daha hızlı ama compaction gerek). PostgreSQL JSONB ile multi-tenant izolasyon için PostgreSQL RLS rehberini öneririm.
SaaS Çözümleri
| Servis | Özellik | Aylık Maliyet (1.000 MAU) |
|---|---|---|
| Liveblocks | Yjs sunucu + presence + comments | 200-800 USD |
| Partykit (Cloudflare) | Edge, low-latency | 50-300 USD |
| Pusher Channels | WebSocket + presence (CRDT yok) | 150-500 USD |
| Ably | Realtime + persistence | 180-600 USD |
| Self-hosted Hocuspocus | Sunucu maliyeti | 40-150 USD (5-10K eşzamanlı user) |

Presence: Kursorlar ve Kullanıcı Listesi
“Şu an dokümanı kim açıyor?”, “Sercan’ın kursoru şu satırda” gibi bilgiler presence kategorisine girer. Yjs Awareness API:
- Her kullanıcı kendi state’ini broadcast eder (color, name, cursor position).
- Belirli bir süre güncellenmezse user offline kabul edilir.
- Persistence yok — sadece anlık.
- Latency hedefi: ≤ 100 ms kursor güncellemesi için.
Türkiye Özelinde Pratik Notlar
- Edge latency: Liveblocks sunucuları AB merkezli; Partykit Cloudflare edge’i Türkiye’de POP içerdiği için cursor latency < 80 ms olabiliyor.
- KVKK + doküman içeriği: Hocuspocus + PostgreSQL self-hosted ile Türkiye/EU içinde veri tutmak en güvenli yol.
- Sektör uygulamaları: Hukuk büroları (dosya kolaborasyonu), mimarlık (proje çizim notları), eğitim (sınıf içi paylaşım) ve ajanslar (içerik üretim) en hızlı benimseyen sektörler.
- Ekip yetkinliği: CRDT debug çoğu frontend için yeni paradigma; ilk 2-3 ay yanlış model gözlemi yaygın. Pair programming + sandbox playground şart.
- Mobil entegrasyon: Yjs Swift ve Kotlin binding’leri olgun; React Native için y-redux ve hooks ekosistemi var.
Yaygın Hatalar
- Tüm state’i Y.Doc’a yığma: Sadece kolaboratif veri Y.Doc’ta. UI state lokalde.
- Sıkı concurrent edit limiti: “Maximum 5 user” kuralı CRDT için anlamsız.
- Compaction ihmali: Doküman 50 MB+ büyüdüğünde her yüklemede 5+ saniye sürer.
- Access control unutma: CRDT alfabetiksel olarak güvenli değil — sunucu RBAC zorunlu.
- Persistence atlama: Sunucu çöktüğünde state kaybolur.
- Awareness gürültüsü: Mouse move event’lerini throttle etmeden broadcast etmek server CPU patlatır.
Sık Sorulan Sorular
OT (Operational Transformation) ölü mü?
Google Docs hâlâ OT kullanıyor (eski yatırım nedeniyle), ama yeni projeler için CRDT default. CRDT daha sade, peer-to-peer destekliyor, offline tam destekli.
Liveblocks mü yoksa self-hosted Hocuspocus mu?
Hız ve operasyonel basitlik isteyenler: Liveblocks. Tam kontrol + maliyet düşürmek isteyenler: Hocuspocus. < 5K eşzamanlı kullanıcıda fark az; üzerinde self-hosted ekonomik.
CRDT’nin dezavantajı yok mu?
Var: state boyutu büyür (tüm tarih saklanır), compaction stratejisi gerek. Karmaşık business logic’i CRDT’ye sıkıştırmak zor. ACID transactional iş için CRDT uygun değil.
Mobil ve web aynı CRDT’yi paylaşır mı?
Evet. Yjs ve Automerge’in iOS (Swift), Android (Kotlin), Flutter (Dart) binding’leri var. Aynı Y.Doc instance’ı tüm platformlarda senkron olur.
Cursor presence ve real-time chat farklı mı?
Evet — cursor presence ephemeral (kalıcı değil), chat persistent. Awareness API cursor’a uygun, mesajlar Y.Array veya ayrı bir mesaj DB’sine yazılmalı.
Ömer Önal’dan pratik not: Türkiye’de kolaboratif SaaS geliştiren ekiplere danışmanlık verdiğimde gördüğüm en yaygın yanlış başlangıç, CRDT’yi “WebSocket + yeni bir protokol” sananın MVP’sini 2 haftada bitirmeye çalışması. CRDT bir veri modeli paradigmasıdır — ekip ilk 3-4 hafta hatalı mental model’le çalışıyor, sonra “ay bu durum böyle çalışıyormuş” tipi aydınlanmalar oluyor. Pratik yol: önce Yjs playground’da 5-6 hafta sandbox prototip, sonra production’da küçük bir feature ile başla (örn. çoklu kullanıcı notları); ana doküman düzenleme aylar sonra gelecek. İkincisi: Awareness API’yi cursor’la sınırlı tut — selection, hover state, typing indicator hepsini awareness’a koymak server’ı patlatır. Üçüncüsü: compaction stratejisi gün 1’den planlı olmalı. 3 ay sonra “doküman neden 50 MB” şikayetiyle uyandığında refactor maliyeti yüksek. Sizin sisteminizde kolaboratif özellik şu an roadmap’te mi, pilot mu, üretim mi?
Sonuç
CRDT, modern kolaboratif SaaS’ın temel taşı. Yjs + Tiptap + Hocuspocus (veya Liveblocks) kombinasyonu, sıfırdan kolaboratif uygulama geliştirme süresini 4-6 aydan 6-8 haftaya indiriyor. Doğru entegrasyon ile kullanıcı engagement %34 artar, churn %18 azalır ve ürün rekabetçi farklılık kazanır. Tamamlayıcı içerikler: frontend state management, event-driven mimari, webhook mimarisi ve embedded analytics. İletişim formundan projeniz için kolaboratif uygulama danışmanlığı talep edebilirsiniz.
Dış otorite kaynaklar: Yjs · Automerge · Liveblocks · Ink & Switch — Local-first software










Ömer ÖNAL
Mayıs 17, 2026Türkiye’de kolaboratif özellik eklemek isteyen SaaS ekiplerine danışmanlık verdiğimde en kritik öneri kapsamı küçültmek. Bir doküman düzenleme aracını sıfırdan tam Figma seviyesine taşımak yerine, önce küçük bir kolaboratif alan seçmek — örneğin “ortak notlar paneli” veya “real-time form doldurma” — ekip CRDT mental model’ini öğrenip production deneyimi kazanıyor. Bu pilot 6-8 hafta sürer, ürünün küçük bir kısmı kolaboratif olur ve ekip Yjs/Hocuspocus operasyonunu öğrenir. Sonra ana editor 2. faz olur. İkinci pratik: ilk dağıtımda Liveblocks ile başlamak risk düşürür — operasyonel sürpriz az, hızlı feedback. 5-10K MAU’yu geçince self-hosted Hocuspocus’a geçiş ekonomik. Üçüncüsü: cursor presence latency’sini özellikle Türkiye kullanıcıları için ölçmek lazım — Partykit edge POP’larından geçen trafik Liveblocks AB sunucusuna göre belirgin daha hızlı, mobil 4G üzerindeki kullanıcı deneyiminde fark edilir. Sizin ürününüzde kolaboratif özellik şu an roadmap’in neresinde — pilot, üretim, yoksa hâlâ keşif fazında mı?