15 पॉइंट द्वारा GN⁺ 2023-10-05 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • Conflict-free Replicated Data Types (CRDTs) का एक इंटरैक्टिव परिचय
    • यह ऐसे डेटा स्ट्रक्चर का प्रकार है जिसे अलग-अलग कंप्यूटरों (peers) पर स्टोर किया जा सकता है और जो नेटवर्क अनुरोध या दूसरे peers से पुष्टि किए बिना तुरंत अपडेट हो सकता है
  • CRDTs, Google Docs और Figma जैसे समृद्ध सहयोगी ऐप्स को केंद्रीय सर्वर-आधारित सिंक्रोनाइज़ेशन की आवश्यकता के बिना बनाने के लिए बेहतरीन हैं
  • CRDTs के दो प्रकार होते हैं: state-based और operation-based
    • state-based CRDTs सभी states को peers के बीच ट्रांसफर करते हैं, और नई state सभी states को merge करके प्राप्त की जाती है
    • operation-based CRDTs केवल वे actions ट्रांसफर करते हैं जो उपयोगकर्ता लेते हैं, और इन्हें नई state की गणना करने के लिए इस्तेमाल किया जा सकता है
  • यह लेख state-based CRDTs पर केंद्रित है और बताता है कि primitive CRDTs कैसे बनाए जाएँ, उन्हें अधिक जटिल डेटा स्ट्रक्चर्स में कैसे compose किया जाए, और एक collaborative pixel art editor कैसे बनाया जाए
  • यह Last Write Wins Register (LWW Register) नाम की अवधारणा पेश करता है, जो CRDT का एक सरल प्रकार है, एक single value रखता है, और timestamp का उपयोग करके वर्तमान value को सबसे हाल में लिखी गई value से overwrite कर देता है
  • यह Last Write Wins Map (LWW Map) नाम के CRDT के एक अधिक जटिल प्रकार की अवधारणा भी पेश करता है, जो एक या अधिक values रखता है
  • इसमें एक interactive playground शामिल है, जो LWW Registers और LWW Maps के काम करने के तरीके को समझने में मदद करता है
  • अगला लेख इस लेख में समझाई गई अवधारणाओं का उपयोग करके एक collaborative pixel art editor बनाने पर केंद्रित होगा

2 टिप्पणियां

 
cosine20 2023-10-06

काफ़ी दिलचस्प सामग्री है। मैं सोचता था कि Google Docs जैसे real-time collaboration वाले apps आखिर कैसे implement किए जाते हैं...

 
GN⁺ 2023-10-05
Hacker News टिप्पणियाँ
  • डेवलपर्स के लिए Conflict-free Replicated Data Types (CRDTs) का बेहतरीन परिचय मानी जाने वाली पोस्ट, जिसमें वास्तविक code examples और स्पष्ट व्याख्याएँ शामिल हैं
  • CRDTs का उपयोग product development में किया जाता है, और इन्हें संभालना कठिन हो सकता है, लेकिन ये zero latency और eventual consistency जैसे फायदे देते हैं
  • CRDTs distributed cache में invalidation logic की ज़रूरत खत्म कर सकते हैं, जिससे cache management सरल होता है और performance बेहतर होती है
  • CRDTs पुराने write operations को हटाने की सुविधा देते हैं, जिससे system load कम होता है और edge computing संभव होती है
  • हालांकि, CRDTs का उपयोग role-based authentication की जटिलता, additive data model में बदलाव की आवश्यकता, और debugging समस्याओं जैसी चुनौतियाँ भी लाता है
  • Liveblocks जैसी सेवाएँ CRDTs के उपयोग को सरल बनाने की कोशिश करती हैं, लेकिन independent developers के लिए ये महंगी पड़ सकती हैं
  • CRDTs का उपयोग TTRPG campaign manager, auto-sync database, collaborative notebook tools जैसे विभिन्न applications में किया गया है
  • CRDTs को data management के लिए बेहद उपयोगी और दिलचस्प माना जाता है, लेकिन user-centric applications में उनकी अहमियत पर बहस जारी है
  • कुछ लोगों का तर्क है कि CRDTs का मुख्य लाभ real-time collaboration है, जिसे Google Docs जैसे centralized solutions पहले ही हल कर चुके हैं
  • अन्य लोग कहते हैं कि CRDTs multi-device support और offline access जैसे लाभ देते हैं, लेकिन ये सुविधाएँ centralized solutions में भी उपलब्ध हैं
  • data model updates आसान नहीं होते, और अन्य peers भी data बदल सकते हैं, इसलिए CRDTs के साथ data longevity और user control को लेकर चिंताएँ भी हैं
  • इन बहसों के बावजूद, CRDTs में लगातार रुचि बनी हुई है, और इस क्षेत्र में research और development जारी है