Interface EventStoreAsync<AID extends AggregateId,​A extends Aggregate<A,​AID>,​E extends Event<AID>>

    • Method Detail

      • ofDynamoDB

        static <AID extends AggregateId,​A extends Aggregate<A,​AID>,​E extends Event<AID>> EventStoreAsync<AID,​A,​E> ofDynamoDB​(@Nonnull
                                                                                                                                                           software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient dynamoDbAsyncClient,
                                                                                                                                                           @Nonnull
                                                                                                                                                           java.lang.String journalTableName,
                                                                                                                                                           @Nonnull
                                                                                                                                                           java.lang.String snapshotTableName,
                                                                                                                                                           @Nonnull
                                                                                                                                                           java.lang.String journalAidIndexName,
                                                                                                                                                           @Nonnull
                                                                                                                                                           java.lang.String snapshotAidIndexName,
                                                                                                                                                           long shardCount)
      • getLatestSnapshotById

        @Nonnull
        java.util.concurrent.CompletableFuture<java.util.Optional<A>> getLatestSnapshotById​(@Nonnull
                                                                                            java.lang.Class<A> clazz,
                                                                                            @Nonnull
                                                                                            AID aggregateId)
        Gets the latest snapshot by the aggregate id. / 集約IDによる最新のスナップショットを取得します。
        Parameters:
        clazz - class of Aggregate A to be deserialized / デシリアライズ対象の集約Aのクラス
        aggregateId - id of Aggregate A / 集約AのID
        Returns:
        latest snapshot wrapped by CompletableFuture / CompletableFutureでラップされた最新のスナップショット
      • getEventsByIdSinceSequenceNumber

        @Nonnull
        java.util.concurrent.CompletableFuture<java.util.List<E>> getEventsByIdSinceSequenceNumber​(@Nonnull
                                                                                                   java.lang.Class<E> clazz,
                                                                                                   @Nonnull
                                                                                                   AID aggregateId,
                                                                                                   long sequenceNumber)
        Gets the events by the aggregate id and since the sequence number. / 集約IDとシーケンス番号以降のイベントを取得します。
        Parameters:
        clazz - class of Event E to be deserialized / デシリアライズ対象のイベントEのクラス
        aggregateId - Aggregate id / 集約のID
        sequenceNumber - sequence number / シーケンス番号
        Returns:
        list of Event wrapped by CompletableFuture / CompletableFutureでラップされたEventのリスト
      • persistEvent

        @Nonnull
        java.util.concurrent.CompletableFuture<java.lang.Void> persistEvent​(@Nonnull
                                                                            E event,
                                                                            long version)
        Persists an event only. / イベントのみを永続化します。
        Parameters:
        event - Event / イベント
        version - version / バージョン
        Returns:
        CompletableFuture without result / 結果を持たないCompletableFuture
      • persistEventAndSnapshot

        @Nonnull
        java.util.concurrent.CompletableFuture<java.lang.Void> persistEventAndSnapshot​(@Nonnull
                                                                                       E event,
                                                                                       @Nonnull
                                                                                       A aggregate)
        Persists an event and a snapshot. / イベントとスナップショットを永続化します。
        Parameters:
        event - Event / イベント
        aggregate - Aggregate / 集約
        Returns:
        CompletableFuture without result / 結果を持たないCompletableFuture