Conversation
While implementing the license work for rate limiting and connection limiting, we found it's necessary to uniquely identify an instance of an application. There are, however two problems in the current codebase: 1. Some GRPC calls have a clientId as body in the message, but not all of them. For example, appending events does not have a clientId. 2. Users can override the clientId in the AxonServer properties of the framework, making multiple applications count as the same. This PR introduces the `AxonIQ-ClientId` header on every GRPC call, so Axon Server can always uniquely identify connections. In addition, the AxonServerConnectionFactory now postfixes the `clientId` with 8 random characters to enforce uniqueness. Axon Framework applications have only one factory per Axon Server cluster. This should make the limits enforceable.
There was a problem hiding this comment.
Changes seem fine, build fails, though. And, another question, concerning this:
Some GRPC calls have a clientId as body in the message, but not all of them. For example, appending events does not have a clientId.
Shouldn't this be fixed as well? Is it a misser on the gRPC API, perhaps?
|
@smcvb Thanks for the heads up! I'll take a look at the build.
This header is actually a replacement for that! Why define this property on call payloads, when we can have it globally as header? This makes it unable to be forgotten, like it happened now. |
|
smcvb
left a comment
There was a problem hiding this comment.
My concerns have been addressed, hence I'm approving this pull request.




While implementing the license work for rate limiting and connection limiting, we found it's necessary to uniquely identify an instance of an application. There are, however two problems in the current codebase:
This PR introduces the
AxonIQ-ClientIdheader on every GRPC call, so Axon Server can always uniquely identify connections. In addition, the AxonServerConnectionFactory now postfixes theclientIdwith 8 random characters to enforce uniqueness. Axon Framework applications have only one factory per Axon Server cluster. This should make the limits enforceable.As this will be used with AS 2026.0.0, I have updated the version of this project to
2026.0.0-SNAPSHOT.