Regarding the issue of multi-instance lock contention of TokenSchema

Hi,I used TrackingEventProcessor because I needed event reply. I have set up the token store, but the owner field in the database is always occupied by one instance, which prevents my other instances from executing normally.

How should I enable multiple instances to run simultaneously?
Thanks in advance.


Are you wanting to have more throughput on one of your Tracking Event Processors or are you just wanting some of the Tracking Event Processors to run on another node?

You can read up on Event Processors in the documentation at Event Processors | Axon Reference Guide (axoniq.io). And more specifically the Stream Event Processors at Streaming Event Processors | Axon Reference Guide (axoniq.io).

Many thanks, but the challenge our team is currently encountering is as follows: “We are coding independently on our respective computers, all connected to the same database. When one team member initiates their project, the others seem to encounter difficulties properly attaching to the Axon setup, with the console logging messages like ‘TrackingEventProcessor Releasing claim.’ Even if we manage to start our applications concurrently, what would be the approach to address the issue where events intended for one instance are being processed by others’ setups, especially considering we are working with different versions of the project?”

Recommended approach to working as a team is to have a local development environment.

Thank you for your response. Does this imply that each team member is required to have their own distinct db? We all develop our code using Git, and for the development (dev) environment, we share the same database. This means we each start our own project instances to debug our individual code. The current strategy in place is that each team member has their own event, snapshot, and token tables.

Typically, yes, it’s advised to run the whole stack locally, so either in a cloud environment only one developer is using, or running on the local environment, ideally with Docker. Using the same environment for development is challenging, especially when big changes are made, like adding information to existing messages, or adding new messages.