परियोजना का विवरण
अनुवादितअंदर, विलय को संघर्ष-मुक्त होना चाहिए, इसलिए हम CRDT या परिचालन रूपांतरणों पर आधारित एक इंजन की अपेक्षा करते हैं, न कि एक साधारण 'अंतिम लेखन जीतता है' योजना। विभिन्न क्लाइंट से समानांतर संपादन को प्रत्येक मशीन पर बिल्कुल समान अंतिम स्थिति में संकुचित होना चाहिए, पैकेट वितरण क्रम और नेटवर्क विलंब के बावजूद। ऑफ़लाइन कार्य हमारे लिए महत्वपूर्ण है: एक उपयोगकर्ता जो कनेक्शन खो देता है उसे स्थानीय रूप से संपादित करना जारी रखने में सक्षम होना चाहिए, और उनके परिवर्तन कनेक्शन बहाल होने पर स्वचालित रूप से समायोजित होने चाहिए, बिना किसी विलय संवाद के और बिना टाइप किए गए अक्षरों को खोए। हमें नामित स्नैपशॉट के साथ पूर्ण संस्करण इतिहास, एक दृश्य संपादन फ़ीड, और किसी भी पिछले संशोधन को पुनर्स्थापित या तुलना करने की क्षमता की भी आवश्यकता है।
परिवहन को स्वचालित पुन: कनेक्शन और बैकप्रेशर हैंडलिंग के साथ WebSocket पर बनाया जाना चाहिए, और पूरा सिस्टम कई दस्तावेज़ों और कई समवर्ती संपादकों के बीच स्केल करना चाहिए ताकि सर्वर एक बाधा न बने। हम आपसे अनुरोध करते हैं कि इसे उत्पादन कार्य के रूप में मानें: हमें साफ़ API, विलय लॉजिक के चारों ओर परीक्षण और स्पष्ट दस्तावेज़ीकरण की परवाह है ताकि हमारी टीम आगे जाकर परियोजना को बनाए रख सके।
— प्रत्येक उपयोगकर्ता के लिए लाइव कर्सर, चयन और उपस्थिति संकेतक
— CRDT/OT विलय इंजन जिसमें संकुचन की गारंटी हो
— पुन: कनेक्शन पर स्वचालित समायोजन के साथ ऑफ़लाइन संपादन
— एम्बेडेड टिप्पणियाँ, चर्चा के धागे और पूर्ण संस्करण इतिहास