Skip to content

Allow AxonServerEventStore to utilize FilteringEventStorageEngine #322

Description

@bsanders1979

Enhancement Description

I would like to be able to prevent some events from being published to the event store. Previously, our application was not connected to an event store, so this issue wasn't prevalent.

Current Behaviour

All events are published to event store

Wanted Behaviour

I would like to be able to prevent certain events from being published.

I suggest the following enhancement for AxonServerEventStore.Builder

public Builder eventMessageFilter(Predicate<? super EventMessage<?>> filter) {
  ...
}

private void buildStorageEngine() {
  ...
      EventStorageEngine storageEngine = AxonIQEventStorageEngine.builder()
                          .snapshotSerializer(snapshotSerializer.get())
                          .upcasterChain(upcasterChain)
                          .snapshotFilter(snapshotFilter)
                          .eventSerializer(eventSerializer.get())
                          .configuration(configuration)
                          .eventStoreClient(axonServerConnectionManager)
                          .converter(new GrpcMetaDataConverter(eventSerializer.get()))
                          .build();
                          
      if (eventMessageFilter != null)
        storageEngine = new FilteringEventStorageEngine(storageEngine, eventMessageFilter);
        
      super.storageEngine(storageEngine);
}

Possible Workarounds

No known workarounds

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions