Skip to content

Allow AxonServerEventStore to utilize FilteringEventStorageEngine #322

@bsanders1979

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

Metadata

Metadata

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions