Fábrica de almacenes

El StoreFactory define cómo socketio4j crea y gestiona almacenes por sesión y mapas compartidos, mientras también expone un EventStore para la sincronización distribuida de eventos. El almacenamiento y la propagación de eventos están desacoplados, lo que permite que cualquier backend de almacenamiento de datos se empareje con cualquier mecanismo de distribución de eventos compatible.

Esto permite combinaciones flexibles como:

  • Almacenamiento en memoria + sincronización de eventos basada en Kafka

  • Almacenamiento en Redis + pub/sub de NATS

  • Almacenamiento en Hazelcast + Redis Streams

  • Almacenamiento en memoria + sin distribución (MemoryEventStore) …o cualquier otro emparejamiento específico de despliegue.

Características clave

  • Creación de Store por sesión — cada conexión de cliente obtiene su propio almacén de datos

  • Creación de mapa compartido — proporciona mapas nombrados para namespaces, adaptadores y plugins

  • Exposición de EventStore — suministra un backend de eventos, independiente de la elección de almacenamiento

  • Diseño componible — el almacenamiento y la propagación de eventos pueden provenir de sistemas distintos

  • Comportamiento configurable — cambia la distribución de eventos sin reemplazar el almacenamiento

Cómo funciona

  • createStore(sessionId) → devuelve un ámbito de sesión Almacén vinculado al backend de almacenamiento

  • createMap(name) → devuelve un mapa nombrado y compartido para el estado entre sesiones

  • eventStore() → devuelve el EventStore (por defecto o personalizado)

  • init(...) → prepara el almacenamiento y la sincronización de eventos antes del arranque del servidor

  • shutdown() → limpia los recursos asignados durante la finalización

Combinar y emparejar

Backend de almacenamiento (StoreFactory)

Backend de eventos (EventStore)

Válido

Despliegue de ejemplo

Memoria

Kafka

✔️

datos de sesión locales + propagación global de eventos

Redis

NATS

✔️

Mapas Redis + mensajería de baja latencia

Hazelcast

Redis Streams

✔️

Clustering de Hazelcast + sincronización de streams duradera

Memoria

Memoria

✔️

nodo único, sin distribución

Hazelcast

Kafka

✔️

Replicación de sesión en Hazelcast + sincronización con Kafka

Resumen de diseño

  • StoreFactory decide dónde vive la metadata por sesión

  • EventStore decide cómo se distribuyen los eventos entre servidores

  • Ambos son independientes y reemplazables en tiempo de ejecución

Ventajas

👍 Despliegues híbridos y rutas de migración gradual 👍 Las capas de almacenamiento y eventos pueden evolucionar independientemente 👍 Evita acoplar el estado distribuido con el transporte de eventos 👍 Funciona tanto para configuraciones de nodo único como en clúster

Última actualización

¿Te fue útil?