API de la fabrique de magasins

A StoreFactory sélectionne où vivent les données de session et quelles EventStore distribue les événements. Le stockage et la synchronisation des événements sont indépendants, vous pouvez donc combiner librement les backends.


MemoryStoreFactory

MemoryStoreFactory()

Crée une usine utilisant le stockage en mémoire et le MemoryEventStore. Utiliser pour à nœud unique ou sans distribution configurations.

StoreFactory sf = new MemoryStoreFactory();
// stockage en mémoire + événements locaux uniquement

MemoryStoreFactory(EventStore eventStore)

Crée une usine utilisant le stockage en mémoire et un EventStore personnalisé pour la synchronisation distribuée.

EventStore es = new KafkaEventStore(...);
StoreFactory sf = new MemoryStoreFactory(es);
// stockage local + événements distribués (Kafka)

HazelcastStoreFactory

HazelcastStoreFactory(HazelcastInstance hazelcastClient)

Crée une usine utilisant Stockage Hazelcast et le HazelcastEventStore.


HazelcastStoreFactory(HazelcastInstance hazelcastClient, EventStore eventStore)

Crée une usine utilisant Stockage Hazelcast et un EventStore personnalisé backend.


RedisStoreFactory

RedisStoreFactory(RedissonClient redissonClient)

Crée une usine utilisant Stockage Redis et le RedissonPubSubEventStore (Redis Pub/Sub).


RedisStoreFactory(RedissonClient redissonClient, EventStore eventStore)

Crée une usine utilisant Stockage Redis et un EventStore personnalisé.


Mélanger les backends de stockage et d'événements

Stockage (StoreFactory)

Événement (EventStore)

Exemple

Mémoire

Kafka

new MemoryStoreFactory(new KafkaEventStore(...))

Redis

NATS

new RedisStoreFactory(redis, new NatsEventStore(...))

Hazelcast

Redis Streams

new HazelcastStoreFactory(hz, new RedisStreamEventStore(...))

Mémoire

Mémoire

new MemoryStoreFactory()

Hazelcast

Kafka

new HazelcastStoreFactory(hz, new KafkaEventStore(...))


Utilisation minimale du serveur


Résumé du concept

StoreFactory décide où vivent les données par session. EventStore décide comment les événements se propagent entre les serveurs. Les deux sont configurables et interchangeables, sans changer le code de l'application.

Mis à jour

Ce contenu vous a-t-il été utile ?