Comments (5)
Hi @smcvb,
It would be nice if excluding the axon-server module would do the trick, but if it is not an easy fix we will adapt and add the axon.axonserver.enabled property to our services. I get it that it is hard to keep track of all side-effects when making changes, especially in a complex spring autowiring scenario.
Thanks
from axonframework.
Hi @magnusdurr, thanks for filing your concern with us.
Although the property is not new at all (we introduced it in Axon Framework 4.3, as you can see in this pull request, released in February 2020), I do agree we should've marked this shift within the release notes.
I assume your application excluded the axon-server-connector
module, right?
The predicament that excluding the dependency wouldn't work did cross my mind when working on this pull request, which ensures JPA and JDBC are not wired whenever Axon Server is used.
Especially the automagical construction of the Event Store-specific JPA entities caused issues in user's pipelines.
I, however, wrongfully assumed (1) that people using Spring Boot would be aware of the property and (2) I forgot to mark this switch in the release of 4.8.3.
So, my sincere apologies for the issues this caused in your builds, @magnusdurr.
This wasn't intentional at all.
This brings us to a tough position, though.
Although excluding the dependency was the suggested approach to disable Axon Server pre AF4.3, this was never documented anywhere other than on our forum (as far as I am aware).
Furthermore, Spring Boot's auto wiring annotations are (again, as far as I know) incapable of validating in one fell swoop whether a dependency is present, a property is present, and if the property is there, whether it is set.
We have worked on making custom @Conditional
annotations in the past, so perhaps there's a mix to be built.
But, I do believe the workaround, which is setting a property (FYI, documented here), is pretty straightforward.
I hope my decision-making with PR #2871 makes sense, @magnusdurr.
Still, you definitely have a point that we should've made this clear.
As such, I have adjusted the 4.8.3 release notes to explain this potential breaking change, as you can see here.
Lastly, if you feel strongly Axon Framework should support a mix of module exclusion and Spring Boot property usage, do let us know.
from axonframework.
Thanks for the understanding, @magnusdurr.
And, as started off, we are very happy with this kind of communication.
It helps us improve the things we lost sight off, which should improve the experience for everybody!
from axonframework.
@magnusdurr, @abuijze did some additional digging while working on the AF's auto-configuration and found some ordering issues.
It's this issue that led me to believe the property was the only way.
Pull request #2909 actually reverts the behavioral change you noticed by adjusting that ordering again.
So...I am going to extend my apologies again! Apparently my assumptions where wrong and we can keep both the property-based disabling of Axon Server and through exclusion of the axon-server-connector
module.
The fix is slated for 4.9.1, by the way. Again, sorry for any inconvenience caused to you and the team (and to others who may encounter this issue and read it).
from axonframework.
I've marked this issue as resolved by #2909 and adjusted the milestone to point to 4.9.1.
from axonframework.
Related Issues (20)
- Eventual Consistency Question - Doesn't work correctly to get the result of the saga process, from the EventStore using method readEvents HOT 1
- Allow configuration of a processing group's type through the annotation. HOT 4
- Enhancing metric observability HOT 1
- Aggregate fixture hierarchy behaviour HOT 6
- Claim segments operation for Streaming Event Processors
- Log notification about AxonIQ console, if console-framework-client is not there
- axon-tracing-opentelemetry with Spring Devtools crashes on start HOT 2
- AxonDbSchedulerAutoConfiguration can not be used multiple times in hierarchical Spring context due to static fields HOT 15
- Shutdown-Mechanism of DbSchedulerDeadlineManager HOT 12
- InfraConfiguration.springAxonConfigurer ignores ConfigurerModule.order() HOT 5
- TrackingEventProcessor does not start all threads in rare cases HOT 2
- ComponentLocator does not resolve beans from Spring Parent Context HOT 6
- Various issues when importing Axon in Eclipse HOT 6
- Validate necessity of `ReflectionUtils#ensureAccessible(T)` and `ReflectionUtils#isAccessible(AccessibleObject)` HOT 2
- Axon Spring Boot Starter fails to connect to Axon Server on Spring Boot version 3.1.6+ HOT 6
- Unable to Catch AggregateDeletedException When Using CommandGateway HOT 1
- Unable to Catch AggregateDeletedException When Using CommandGateway HOT 1
- Allow prevention of `@QueryHandlers` when the Event Handling Component backing the query handler is Replaying HOT 2
- Support Synthetic Flows/Tests HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from axonframework.