Almacén de eventos
El EventStore interface define la capa de sincronización de eventos distribuida de socketio4j. Proporciona una abstracción unificada para publicar y suscribirse a eventos internos — tales como uniones a salas, salidas, reconocimientos, cambios de sesión y sincronización nodo a nodo — a través de una o más instancias de servidor.
Características clave
API unificada de eventos — mismo modelo de publicar/suscribir para todos los backends
Despacho tipado — los oyentes reciben fuertemente tipados
EventMessageobjetosFiltrado con conocimiento de nodo — las implementaciones típicamente ignoran eventos originados por sí mismas vía
filtrado por nodeIdTransportes enchufables — Kafka, Redis Streams, Hazelcast, NATS, fallback en memoria, etc.
Control del ciclo de vida — estandarizado
publicar,suscribir,anular suscripción,apagado
Cómo funciona
publicar→ envío específico del backend víapublish0suscribir→ registrar oyente de eventos víasubscribe0anular suscripción→ eliminar oyente y limpiar víaunsubscribe0apagado→ liberar recursos del backend víashutdown0Las implementaciones suministran el comportamiento del transporte mediante los
*0métodos; la interfaz estandariza el flujo y el manejo de errores
Propiedades de enrutamiento de eventos
EventStoreMode
MULTI_CHANNEL (streams/temas por evento) o SINGLE_CHANNEL (canal unificado)
EventStoreType
Declara la familia de transporte: STREAM, PUBSUB, LOCAL, etc.
PublishMode
Describe la confiabilidad esperada: RELIABLE o UNRELIABLE
filtrado por nodeId
Identifica el nodo; se usa para evitar reprocesar eventos locales
Nota:
getNodeId()proporciona un ID aleatorio por defecto. Para despliegues distribuidos, configure una identidad de nodo estable víaStoreFactory.
Ventajas
👍 Cambiar transportes distribuidos sin cambiar el código 👍 Registro centralizado de errores y semánticas de flujo 👍 Ganchos claros de extensión para backends personalizados 👍 Abstrae las diferencias de transporte
Limitaciones
ℹ️ Las garantías de entrega dependen de la implementación — no son impuestas por la interfaz
ℹ️ Persistencia, ordenación y deduplicación son responsabilidades del backend
ℹ️ filtrado por nodeIdEl filtrado local basado en - debe respetarse para evitar duplicados
Garantías de entrega
El La interfaz EventStore no define garantías de entrega. La confiabilidad, la reproducción y el orden dependen enteramente del backend elegido (p. ej., Redis Streams = al menos una vez; Redis Pub/Sub = mejor esfuerzo; Kafka = al menos una vez; Memory = solo local).
Última actualización
¿Te fue útil?