7 पॉइंट द्वारा GN⁺ 2023-10-19 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Reflect, Figma, Notion, और Google Sheets जैसे मल्टीप्लेयर वेब एप्लिकेशन बनाने के लिए एक नया फ्रेमवर्क है.
  • यह क्लाइंट-साइड सिंक्रोनाइज़ेशन फ्रेमवर्क Replicache का विकसित संस्करण है, और मल्टीप्लेयर ऐप डेवलपमेंट को आसान बनाने के लिए इसमें पूरी तरह managed server जोड़ा गया है.
  • Reflect अब पहली बार सार्वजनिक रूप से उपलब्ध है.
  • यह फ्रेमवर्क collaborative editing में conflict resolution की समस्या को संभालता है, ताकि सभी users एक ही content देखें और conflicts स्वाभाविक रूप से resolve हो जाएँ.
  • CRDTs (Conflict-Free Replicated Data Types) जैसे लोकप्रिय web ecosystem tools के विपरीत, Reflect वीडियो गेम इंडस्ट्री में लोकप्रिय Transactional Conflict Resolution तकनीक का उपयोग करता है.
  • Reflect के अनोखे फायदे और अंतर इसके synchronization engine के मूल चयन से आते हैं.
  • Reflect बदलावों को लागू करने के लिए mutators नामक JavaScript functions का उपयोग करता है, और mutator के call होने पर mutation record बनाया जाता है.
  • Mutation को लोकल में apply किया जाता है और server पर stream किया जाता है, जहाँ server arrival time के आधार पर mutations को linearize करके अगली authoritative state बनाता है.
  • Reflect तेज़ी से बदलने वाले applications को संभाल सकता है, और पहले वाले mutations की पुष्टि का इंतज़ार करते हुए भी नए mutation जोड़ता रहता है.
  • इस फ्रेमवर्क को ऐसा तेज़ data store चाहिए जो rewind, fork और branch creation कर सके, और ऐसा तेज़ server-side store भी चाहिए जो incoming mutations के साथ तालमेल बनाए रख सके.
  • Reflect का approach अच्छी तरह generalize होता है, इसलिए यह arithmetic operations, list operations, और high-level invariants enforcement जैसे विभिन्न कार्यों के लिए उपयुक्त है.
  • Reflect का server authoritative होता है, mutation के परिणामों की स्वयं फिर से गणना करता है, और सभी clients उस परिणाम को देख सकते हैं.
  • यह server authority granular authentication और server पर अन्य code execution को संभव बनाती है.
  • Reflect schema validation और migrations जैसे लाभ भी प्रदान करता है.
  • Reflect की synchronization strategy, Transactional Conflict Resolution, सरल, लचीली और शक्तिशाली है, इसलिए यह मल्टीप्लेयर applications बनाने के लिए एक अच्छा विकल्प है.

1 टिप्पणियां

 
GN⁺ 2023-10-19
Hacker News राय
  • यह लेख Reflect पर चर्चा करता है, जो game-style synchronization वाला एक multiplayer web app framework है.
  • होमपेज पर Reflect का demo इंटरैक्टिव है, और ऐसा लगता है कि users task completion को लेकर उत्साह दिखा रहे हैं, जो काफी दिलचस्प है.
  • Reflect open source नहीं है, इसलिए इससे उन कंपनियों में adoption सीमित हो सकता है जो core infrastructure के लिए open source software को प्राथमिकता देती हैं.
  • Reflect पहले Replicache नाम से जाना जाता था, और अब इसमें एक fast sync server शामिल है.
  • यह framework users को simple और sequential code के साथ यह तय करने देता है कि conflicts को कैसे handle करना है, जिसे CRDTs की तुलना में एक advantage माना जाता है.
  • Reflect के data model और coding model की उनकी simplicity के कारण प्रशंसा की जा रही है.
  • Reflect में list operations को implement करने की चुनौतियों, खासकर उन scenarios में जहाँ कई users एक साथ updates करते हैं, पर चर्चा है.
  • एक user ने Reflect में इस्तेमाल की गई confusing terminology की ओर इशारा किया और non-game software के लिए "multiplayer" की जगह "multi-user" का सुझाव दिया.
  • यह सवाल उठाया गया है कि Reflect authentication को कैसे handle करता है, क्योंकि CRDT libraries में अक्सर mutations को validate करने के लिए central authority की कमी होती है.
  • Reflect की strategy की तुलना game development में कई entities की state को synchronize करने के लिए इस्तेमाल होने वाले "deterministic synchronization" से की जाती है.
  • यह सवाल भी उठता है कि Reflect mutators के upgrades को कैसे handle करता है, और client तथा server operations के बीच संभावित mismatch से कैसे निपटता है.
  • एक user ने कहा कि multiplayer engines में high-frequency messaging को handle करने के लिए browser के भीतर UDP protocol की जरूरत है, और TCP तथा WebSocket के overhead की आलोचना की.