AxonFramework / AxonFramework

Framework for Evolutionary Message-Driven Microservices on the JVM
https://axoniq.io/
Apache License 2.0
3.32k stars 790 forks source link

Perform Supported Features Handshake between AF and AS / Extensions #3089

Open smcvb opened 2 months ago

smcvb commented 2 months ago

If there were a single handshake when the connection between a client (AF) and Axon Server is established, a lot of useful information could be exchanged. Cluster information, per-node or cluster current load, node addresses, contexts. One of the interesting points that could be exchanged would be a Feature set, or which features are supported by a given client/server.

For example:

After that both client and server(node) agree to use Heartbeat and FeatureX. There could be more variations to level of detail and requirements (and complexity) with required features, optional features, enabled features, supported but not active etc. This would be a more powerful mechanism to introduce and deprecate/remove features in mixed version deployments, than to rely on just versions. Relying only on versions requires extensive checks and compatibility comparison.