Tableau partagé
Go écrit dans D1, puis le Durable Object du sujet envoie le fragment à chaque onglet ouvert via hx-ws.
Comment fonctionne le tableau
- Chaque modification est un envoi de formulaire à un gestionnaire Go sur le Worker. Il écrit dans D1, la base de données SQLite de Cloudflare et seule source de vérité du tableau, puis augmente la version du sujet.
- Le gestionnaire produit ensuite le rendu complet du tableau, une fois par langue, et le confie au Durable Object du sujet, qui l’envoie à chaque onglet ouvert. Rien n’est fusionné dans le navigateur : chaque push remplace le tableau.
- Les onglets restent connectés grâce au hx-ws de htmx 4 via WebSocket Hibernation, si bien qu’un millier d’onglets inactifs ne coûte presque rien tant que rien ne change. Le badge indique qui est là.
- Chaque push porte la version dont il est issu. Un onglet ignore tout push plus ancien que le tableau qu’il affiche : même si des modifications se croisent sur le réseau, il ne revient jamais en arrière.
- Chaque connexion peut effectuer 60 modifications en 10 secondes, et un sujet accepte jusqu’à 1 000 onglets ouverts.