Ana Sayfa

CRDT'lere İnteraktif Bir Giriş: İşbirlikçi Uygulamaların Temeli

1 dk okuma

CRDT'ler (Conflict-free Replicated Data Type - Çatışmasız Çoğaltılmış Veri Tipi), farklı bilgisayarlarda (eşler) depolanabilen ve her eşin kendi durumunu anında, diğer eşlerle ağ isteği yapmadan güncelleyebilmesini sağlayan özel bir veri yapısıdır. Bu teknoloji, eşlerin farklı zamanlarda farklı durumlara sahip olabilmesine rağmen, sonunda tek bir üzerinde anlaşılmış duruma yakınsamalarını garanti eder. Bu özellik, CRDT'leri Google Docs ve Figma gibi zengin işbirliği uygulamaları oluşturmak için ideal kılar, çünkü değişiklikleri senkronize etmek için merkezi bir sunucuya ihtiyaç duymazlar.

Genel olarak iki tür CRDT bulunur: durum tabanlı (state-based) ve işlem tabanlı (operation-based). Durum tabanlı CRDT'ler, eşler arasında tam durumlarını iletir ve yeni bir durum, tüm durumların birleştirilmesiyle elde edilir. İşlem tabanlı CRDT'ler ise yalnızca kullanıcıların gerçekleştirdiği eylemleri iletir ve bu eylemler yeni bir durumu hesaplamak için kullanılır. İşlem tabanlı CRDT'ler daha verimli görünse de, mesajların her eşe tam olarak bir kez ve nedensel sıraya göre iletilmesi gibi iletişim kanalı üzerinde kısıtlamalar getirirler. Bu makale serisi özellikle durum tabanlı CRDT'lere odaklanmaktadır.

Yazar, bu seride CRDT'lerin ne olduğunu açıklayacak, basit bir CRDT oluşturacak, onu daha karmaşık veri yapılarına dönüştürecek ve son olarak öğrenilenleri kullanarak işbirlikçi bir piksel sanat düzenleyici geliştirecektir. Bu süreç, CRDT'ler hakkında önceden bilgi sahibi olmayı gerektirmemekte, yalnızca temel TypeScript bilgisi yeterli olmaktadır. Serinin sonunda, kullanıcıların fareyle çizim yapabileceği, renk değiştirebileceği ve değişikliklerin diğer tuvalde anında görüneceği, çevrimdışı mod ve gecikme ayarı gibi özelliklere sahip bir uygulama ortaya çıkacaktır.

İçgörü

Merkezi sunucuya ihtiyaç duymadan gerçek zamanlı işbirliği sağlayan uygulamaların temelini oluşturur.

Kaynak