साझा बोर्ड
Go, D1 में लिखता है, फिर टॉपिक का Durable Object फ़्रैगमेंट को hx-ws के ज़रिए हर खुले टैब तक भेजता है।
बोर्ड कैसे काम करता है
- हर बदलाव Worker पर चलने वाले एक Go हैंडलर को भेजा गया फ़ॉर्म पोस्ट है। हैंडलर D1 में लिखता है, जो Cloudflare का SQLite डेटाबेस और बोर्ड डेटा का इकलौता प्रामाणिक स्रोत है, और टॉपिक का संस्करण बढ़ाता है।
- फिर हैंडलर हर भाषा के लिए पूरा बोर्ड एक बार रेंडर करता है और उसे टॉपिक के Durable Object को सौंप देता है, जो उसे हर खुले टैब तक भेजता है। ब्राउज़र में कुछ भी मर्ज नहीं होता: हर पुश पूरे बोर्ड की जगह ले लेता है।
- टैब htmx 4 के hx-ws के ज़रिए WebSocket Hibernation पर जुड़े रहते हैं, इसलिए जब तक कुछ बदलता नहीं, हज़ार शांत टैब का ख़र्च लगभग शून्य रहता है। बैज दिखाता है कि यहाँ कितने लोग मौजूद हैं।
- हर पुश में वह संस्करण होता है जिससे वह बना था। टैब ऐसे पुश को अनदेखा कर देता है जो उसके दिखाए जा रहे बोर्ड से पुराना हो, इसलिए नेटवर्क पर उलटे क्रम में पहुँचे बदलाव भी कभी पीछे नहीं जाते।
- हर कनेक्शन 10 सेकंड में 60 बदलाव कर सकता है, और एक टॉपिक में 1,000 तक टैब खुले रह सकते हैं।