We’re currently using Tracking Event Processors (TEP) in production to build projections from the event stream.
As we were looking into the possibilities of the more recent Pooled Streaming Event Processors (PSEP) regarding dynamic horizontal scaling without the need to alter segmentation configuration settings, we’re considering to replace TEPs by PSEPs.
The question is it sufficient to just change the mode property into ‘pooled’?
Or do we need to take care of other things?
We just want confirmation that we can transition smoothly from TEP to PSEP without countering any issues.
For information: we’re already using Axon Server as routing mechanism for our distributed system.
The answer to this is, luckily, super easy, @Bram.
Yes, you can simply change the mode of the event processors from tracking to pooled-streaming.
If you’re defining your processors through a properties file, that mean you’d switch from
If you are using the Configuration API, you can simply switch your
EventProcessingConfigurer#registerTrackingEventProcessor invocation for
So, go ahead!
If anything odd pops up, you know where to reach us!
Thanks for your answer @Steven_van_Beelen !
Good to know we’ve just to change our properties file.
Another question about equal distribution of segments over multiple instances:
In an other post you mentioned:
…move to a setup where you consciously tell instances to scale those segments between one another. This is something you can, for example, set through Axon Server, by adjusting the load balancing strategy to a “per thread” setting.
In doing so, Axon Server will take up the role of “telling” different Axon Framework instances to release and claim. segments, until an equal distribution is achieved.
Is it only possible to set the ‘per thread’ setting using Axon Server dashboard or is there any configuration setting we can use for this?
Axon Server only has the ‘per thread’ option. So yeah, that limits you somewhat.
We are working on another tool, though, called AxonIQ Console, which among other things, will provide more specific control over segments and load balancing.
So if you’re looking for more advanced options, I’d suggest checking it out: https://console.axoniq.io/