Tablero compartido
Go escribe en D1 y luego el Durable Object del tema envía el fragmento a cada pestaña abierta mediante hx-ws.
Cómo funciona el tablero
- Cada cambio es un formulario enviado a un handler de Go en el Worker. Este escribe en D1, la base de datos SQLite de Cloudflare y la única fuente de verdad del tablero, e incrementa la versión del tema.
- Después, el handler renderiza el tablero completo una vez por idioma y se lo pasa al Durable Object del tema, que lo envía a cada pestaña abierta. Nada se combina en el navegador: cada push reemplaza el tablero.
- Las pestañas siguen conectadas con hx-ws de htmx 4 mediante WebSocket Hibernation, así que mil pestañas inactivas apenas cuestan nada hasta que algo cambia. La insignia cuenta quién está aquí.
- Cada push lleva la versión a partir de la que se hizo. Una pestaña ignora un push más antiguo que el tablero que muestra, así que los cambios que se cruzan en la red nunca retroceden.
- Cada conexión puede hacer 60 cambios en 10 segundos, y un tema admite hasta 1000 pestañas abiertas.