לוח משותף
Go כותב ל-D1, ואז ה-Durable Object של הנושא דוחף את המקטע לכל כרטיסייה פתוחה דרך hx-ws.
איך הלוח עובד
- כל שינוי הוא שליחת טופס ל-handler ב-Go שרץ ב-Worker. הוא כותב ל-D1, מסד הנתונים מבוסס SQLite של Cloudflare ומקור האמת היחיד של הלוח, ומעלה את הגרסה של הנושא.
- לאחר מכן ה-handler מרנדר את הלוח כולו פעם אחת לכל שפה ומעביר אותו ל-Durable Object של הנושא, ששולח אותו לכל כרטיסייה פתוחה. שום דבר לא ממוזג בדפדפן: כל דחיפה מחליפה את הלוח.
- הכרטיסיות נשארות מחוברות באמצעות hx-ws של htmx 4 מעל WebSocket Hibernation, כך שאלף כרטיסיות שקטות כמעט לא עולות דבר עד שמשהו משתנה. התג סופר מי נמצא כאן.
- כל דחיפה נושאת את הגרסה שממנה נוצרה. כרטיסייה מתעלמת מדחיפה ישנה יותר מהלוח שהיא מציגה, כך ששינויים שמצטלבים ברשת לעולם לא חוזרים לאחור.
- כל חיבור יכול לבצע 60 שינויים ב-10 שניות, ונושא יכול להכיל עד 1,000 כרטיסיות פתוחות.