15 puan yazan GN⁺ 2023-10-05 | 2 yorum | WhatsApp'ta paylaş
  • Conflict-free Replicated Data Types (CRDT'ler) hakkında etkileşimli bir giriş yazısı
    • Farklı bilgisayarlarda (eşlerde) depolanabilen ve ağ isteği olmadan, diğer eşlerle teyitleşmeye gerek duymadan anında güncellenebilen bir veri yapısı türü
  • CRDT'ler, Google Docs ve Figma gibi zengin işbirliği uygulamalarını merkezi sunucu senkronizasyonu gereksinimi olmadan kurmak için çok uygundur
  • CRDT'lerin iki türü vardır: durum tabanlı ve işlem tabanlı
    • Durum tabanlı CRDT'ler tüm durumu eşler arasında iletir ve yeni durum, tüm durumların birleştirilmesiyle elde edilir
    • İşlem tabanlı CRDT'ler yalnızca kullanıcının yaptığı eylemleri iletir; bunlar da yeni durumu hesaplamak için kullanılabilir
  • Bu yazı, durum tabanlı CRDT'lere odaklanıyor ve ilkel bir CRDT'nin nasıl oluşturulacağını, bunun daha karmaşık veri yapılarına nasıl dönüştürüleceğini ve işbirlikçi bir piksel sanat editörünün nasıl geliştirileceğini anlatıyor
  • Last Write Wins Register (LWW Register) adlı kavramı tanıtıyor; bu, tek bir değer tutan ve zaman damgası kullanarak mevcut değeri en son yazılan değerle üzerine yazan basit bir CRDT türü
  • Ayrıca Last Write Wins Map (LWW Map) adlı daha karmaşık bir CRDT türünü tanıtıyor; bu yapı bir veya daha fazla değer tutabiliyor
  • LWW Register'ların ve LWW Map'lerin nasıl çalıştığını anlamaya yardımcı olan etkileşimli bir playground içeriyor
  • Bir sonraki yazı, bu makalede açıklanan kavramları kullanarak işbirlikçi bir piksel sanat editörü oluşturmaya odaklanacak

2 yorum

 
cosine20 2023-10-06

Oldukça ilginç bir içerik. Google Docs gibi gerçek zamanlı iş birliğine imkan veren uygulamaların nasıl hayata geçirildiğini merak ediyordum da...

 
GN⁺ 2023-10-05
Hacker News görüşü
  • Geliştiriciler için Conflict-free Replicated Data Types (CRDTs) konusunda övgü alan, gerçek kod örnekleri ve net açıklamalar içeren harika bir giriş yazısı
  • CRDT'ler ürün geliştirmede kullanılır ve ele alınmaları zor olabilir, ancak sıfır gecikme ve nihai tutarlılık gibi avantajlar sunar
  • CRDT'ler, geçersiz kılma mantığı gerektirmeyen dağıtık önbelleklere imkan tanıyarak önbellek yönetimini basitleştirir ve performansı artırır
  • CRDT'ler, eski yazma işlemlerinin silinmesini mümkün kılarak sistem yükünü azaltır ve edge computing'i mümkün hale getirir
  • Ancak CRDT kullanmak; rol tabanlı yetkilendirmedeki zorluklar, toplamsal veri modelinde değişiklik gereksinimi ve hata ayıklama sorunları gibi meydan okumalar da getirir
  • Liveblocks gibi hizmetler CRDT kullanımını basitleştirmeye çalışsa da, bağımsız geliştiriciler için pahalı olabilir
  • CRDT'ler TTRPG kampanya yöneticileri, otomatik senkronize olan veritabanları ve iş birliğine dayalı not defteri araçları gibi çeşitli uygulamalarda kullanılmıştır
  • CRDT'ler veri yönetimi açısından çok yararlı ve ilgi çekici görülse de, kullanıcı odaklı uygulamalar için ne kadar önemli oldukları tartışmalıdır
  • Bazıları CRDT'lerin temel faydasının gerçek zamanlı iş birliği olduğunu ve bunun zaten Google Docs gibi merkezi çözümler tarafından çözüldüğünü savunur
  • Diğerleri ise CRDT'lerin çoklu cihaz desteği ve çevrimdışı erişim gibi avantajlar sunduğunu, ancak bu özelliklerin de merkezi çözümlerde mevcut olduğunu belirtir
  • Veri modelini güncellemek kolay olmadığından ve diğer eşler veriyi değiştirebildiğinden, CRDT'lerle birlikte verinin kalıcılığı ve kullanıcı denetimi konusunda da endişeler vardır
  • Bu tartışmalara rağmen, CRDT'lere yönelik ilgi sürüyor ve bu alandaki araştırma ile geliştirme çalışmaları devam ediyor