- Protocolo de streaming duradero basado en HTTP que transmite datos de forma confiable a navegadores web, móviles y clientes nativos
- Ofrece una forma simple y probada de crear y consumir streams con garantía de orden y posibilidad de reproducción
- La reanudación basada en offsets permite continuar desde el punto de interrupción incluso si se corta la conexión
- Puede usarse en diversos escenarios en tiempo real como streaming de conversaciones con IA, sincronización de bases de datos, edición colaborativa, event sourcing y ejecución de workflows
- Resuelve los problemas de inestabilidad de conexión presentes en WebSocket y SSE
- El diseño seguro ante refresh permite reanudar en la misma posición incluso después de cambiar de pestaña o pasar la app a segundo plano
- El uso compartido de streams mediante URL permite que varios usuarios vean el mismo stream al mismo tiempo
- Su arquitectura amigable con CDN y orientada al ahorro de costos permite manejar millones de conexiones simultáneas desde un solo origen
- Soporta sincronización entre múltiples dispositivos y múltiples pestañas
- Características del protocolo
- Universal: puede usarse en cualquier entorno donde funcione HTTP
- Simple: basado en HTTP estándar, sin necesidad de protocolos personalizados adicionales
- Resumable: admite lectura y reanudación basadas en offsets
- Real-time: permite tailing en tiempo real mediante modos Long-poll y SSE
- Economical: logra escalabilidad eficiente mediante caché en CDN
- Composable: permite construir capas de abstracción superiores (por ejemplo, el motor de sincronización en tiempo real de Postgres de Electric)
- Características de rendimiento
- Latencia inferior a 15 ms, manejo de millones de suscriptores simultáneos y escalabilidad horizontal
- La estructura de URL basada en offsets maximiza el uso de caché en CDN
- Relación con los sistemas de streaming de backend
- Complementa sistemas de mensajería entre servidores como Kafka, RabbitMQ y Kinesis
- Durable Streams se encarga de la capa de transporte hacia el cliente
- El servidor realiza autenticación y transformación de datos, y Durable Streams los distribuye por fan-out sobre HTTP
- Diferencias frente a SSE y WebSocket
- SSE y WebSocket solo ofrecen una conexión simple; Durable Streams proporciona una estructura basada en logs duraderos
- Combina las ventajas de un log estandarizado, como reanudación por offsets, reproducción de historial y soporte para múltiples lectores
- Flexibilidad de implementación
- Se puede crear un servidor en cualquier lenguaje implementando solo una API HTTP, almacenamiento duradero y gestión de offsets
- Incluye un servidor de referencia en Node.js y herramientas de pruebas de conformidad y benchmarks
- Casos de uso principales
- Sincronización en tiempo real de bases de datos: streaming de cambios de Postgres hacia web y móviles
- Sistemas de event sourcing: restauración de estado basada en logs de eventos duraderos
- Streaming de conversaciones con IA: los streams de tokens de LLM pueden reanudarse sin interrupciones
- Protocolo bajo licencia Apache 2.0, validado durante 1.5 años en producción por el equipo de Electric SQL
Aún no hay comentarios.