Package fr.maif.eventsourcing
Class ReactivePostgresEventStore<Tx extends fr.maif.jooq.PgAsyncTransaction,E extends fr.maif.eventsourcing.Event,Meta,Context>
java.lang.Object
fr.maif.eventsourcing.ReactivePostgresEventStore<Tx,E,Meta,Context>
- All Implemented Interfaces:
fr.maif.eventsourcing.EventStore<Tx,,E, Meta, Context> Closeable,AutoCloseable
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface fr.maif.eventsourcing.EventStore
fr.maif.eventsourcing.EventStore.ConcurrentReplayStrategy, fr.maif.eventsourcing.EventStore.Query -
Constructor Summary
ConstructorsConstructorDescriptionReactivePostgresEventStore(fr.maif.eventsourcing.EventPublisher<E, Meta, Context> eventPublisher, SimpleDb<Tx> simpleDb, TableNames tableNames, fr.maif.eventsourcing.format.JacksonEventFormat<?, E> eventFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Meta> metaFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Context> contextFormat) -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()CompletionStage<io.vavr.Tuple0>commitOrRollback(io.vavr.control.Option<Throwable> mayBeCrash, Tx pgAsyncTransaction) static <E extends fr.maif.eventsourcing.Event,Meta, Context>
ReactivePostgresEventStore<fr.maif.jooq.PgAsyncTransaction,E, Meta, Context> create(fr.maif.eventsourcing.EventPublisher<E, Meta, Context> eventPublisher, fr.maif.jooq.PgAsyncPool pgAsyncPool, TableNames tableNames, fr.maif.eventsourcing.format.JacksonEventFormat<?, E> eventFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Meta> metaFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Context> contextFormat) static <E extends fr.maif.eventsourcing.Event,Meta, Context>
ReactivePostgresEventStore<fr.maif.jooq.reactor.PgAsyncTransaction,E, Meta, Context> create(fr.maif.eventsourcing.EventPublisher<E, Meta, Context> eventPublisher, fr.maif.jooq.reactor.PgAsyncPool pgAsyncPool, TableNames tableNames, fr.maif.eventsourcing.format.JacksonEventFormat<?, E> eventFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Meta> metaFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Context> contextFormat) loadEventsByQuery(fr.maif.eventsourcing.EventStore.Query query) loadEventsByQuery(Tx tx, fr.maif.eventsourcing.EventStore.Query query) loadEventsUnpublished(Tx transaction, fr.maif.eventsourcing.EventStore.ConcurrentReplayStrategy concurrentReplayStrategy) CompletionStage<fr.maif.eventsourcing.EventEnvelope<E,Meta, Context>> markAsPublished(fr.maif.eventsourcing.EventEnvelope<E, Meta, Context> eventEnvelope) CompletionStage<io.vavr.collection.List<fr.maif.eventsourcing.EventEnvelope<E,Meta, Context>>> markAsPublished(io.vavr.collection.List<fr.maif.eventsourcing.EventEnvelope<E, Meta, Context>> eventEnvelopes) CompletionStage<fr.maif.eventsourcing.EventEnvelope<E,Meta, Context>> markAsPublished(Tx transaction, fr.maif.eventsourcing.EventEnvelope<E, Meta, Context> eventEnvelope) CompletionStage<io.vavr.collection.List<fr.maif.eventsourcing.EventEnvelope<E,Meta, Context>>> markAsPublished(Tx transaction, io.vavr.collection.List<fr.maif.eventsourcing.EventEnvelope<E, Meta, Context>> eventEnvelopes) nextSequence(Tx tx) CompletionStage<io.vavr.collection.List<Long>>nextSequences(Tx tx, Integer count) CompletionStage<io.vavr.Tuple0>persist(Tx transactionContext, io.vavr.collection.List<fr.maif.eventsourcing.EventEnvelope<E, Meta, Context>> events) CompletionStage<io.vavr.Tuple0>Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface fr.maif.eventsourcing.EventStore
loadAllEvents, loadEvents
-
Constructor Details
-
ReactivePostgresEventStore
public ReactivePostgresEventStore(fr.maif.eventsourcing.EventPublisher<E, Meta, Context> eventPublisher, SimpleDb<Tx> simpleDb, TableNames tableNames, fr.maif.eventsourcing.format.JacksonEventFormat<?, E> eventFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Meta> metaFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Context> contextFormat)
-
-
Method Details
-
create
public static <E extends fr.maif.eventsourcing.Event,Meta, ReactivePostgresEventStore<fr.maif.jooq.PgAsyncTransaction,Context> E, createMeta, Context> (fr.maif.eventsourcing.EventPublisher<E, Meta, Context> eventPublisher, fr.maif.jooq.PgAsyncPool pgAsyncPool, TableNames tableNames, fr.maif.eventsourcing.format.JacksonEventFormat<?, E> eventFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Meta> metaFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Context> contextFormat) -
create
public static <E extends fr.maif.eventsourcing.Event,Meta, ReactivePostgresEventStore<fr.maif.jooq.reactor.PgAsyncTransaction,Context> E, createMeta, Context> (fr.maif.eventsourcing.EventPublisher<E, Meta, Context> eventPublisher, fr.maif.jooq.reactor.PgAsyncPool pgAsyncPool, TableNames tableNames, fr.maif.eventsourcing.format.JacksonEventFormat<?, E> eventFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Meta> metaFormat, fr.maif.eventsourcing.format.JacksonSimpleFormat<Context> contextFormat) -
openTransaction
-
commitOrRollback
public CompletionStage<io.vavr.Tuple0> commitOrRollback(io.vavr.control.Option<Throwable> mayBeCrash, Tx pgAsyncTransaction) -
persist
public CompletionStage<io.vavr.Tuple0> persist(Tx transactionContext, io.vavr.collection.List<fr.maif.eventsourcing.EventEnvelope<E, Meta, Context>> events) -
lastPublishedSequence
-
loadEventsUnpublished
-
loadEventsByQuery
-
loadEventsByQuery
-
nextSequence
-
nextSequences
-
publish
public CompletionStage<io.vavr.Tuple0> publish(io.vavr.collection.List<fr.maif.eventsourcing.EventEnvelope<E, Meta, Context>> events) -
markAsPublished
-
markAsPublished
-
markAsPublished
-
markAsPublished
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
eventPublisher
-