Author Archive

Axon 3.1 Released

Axon 3.1 has been released! This release is packed with improvements and some exciting new features.
Some of the highlights:

Meet the new member in the Axon family: the Query Bus. We’ve had many questions about why this component wasn’t available. Until recently, we believed queries to be just-like-usual. However, we’ve noticed that queries have interesting patterns. The QueryBus makes these easy to use and, more importantly, completely location transparent. Give it a spin and let us know what you think.

Another addition that we had coming for a while is parallel processing on the TrackingProcessor. While it was limited to a single thread (and this a single active node) in 3.0, this release adds the possibility to define any number of segments that can be processed concurrently. It doesn’t matter whether these segments are processed by threads on the same machine, or on different machines. Check out the Configuration API to find out how you can activate parallel processing on your processor.

It is now possible to selectively route events through the entities in an Aggregate. Especially when an entity would refer to a list of Entities, it could feel awkward that each of those entities receives each event, even if only a single (specified) entity should receive it. The @AggregateMember annotation allows you to specify whether you want to publish to all child entities, or selectively.

The SagaConfiguration has been improved to allow more customizations without having to resort to building entire Processor configurations. This is also true for Spring Boot based configuration, where it is now easier to customize configuration for an @Saga annotated bean.

Another new feature is the ability to configure a separate event serializer in the Configuration API (or Spring Boot Autoconfiguration). This serializer would only be used to serialize events, while other components that are serialized (such as snapshots, Sagas, cache entries) use the generic serializer. This allows you to use a serializer that imposes less design restrictions on the classes to serialize, such as XStream, while also keeping control over how events are serialized and stored for the long term.

For more details on all the changes in this release, check out the resolved issues in this release.

Posted in: News, Release notes

Leave a Comment (0) →

Axon 3.0.7 Released

Axon 3.0.7 has been released and is available for download on the website, and Maven Central.

This release comes with a few fixes for issues found in earlier versions:

When a nested Unit of Work is rolled back, the events published by that Unit of Work (as well as any side-effects) are prevented from being published. Under certain conditions, in previous versions, it was possible that these changes were committed as part of the parent Unit of Work.

When TrackingProcessors take a long time processing an event, it was possible that two instances of the same processor, running on different nodes, would think they both owned the claim. 3.0.7 contains a fix that will ensure only a single instance believes it holds the claim, and prevents it from being “stolen” while the processor is processing an event.

In certain conditions, when an EventBus was defined under another name than “eventBus”, Spring would complain about the bean called “eventBus” not being available. This has been fixed in the 3.0.7 release.

Very rarely, a TrackingProcessor would generate a StackOverflowException while attempting to start reading from the “live events” stream. A fix is included to prevent the processor ending up in an infinite loop while trying to do so. It will now only attempt once each event cycle.

For more details on changes, check out the GitHub issues page.

Posted in: News, Release notes

Leave a Comment (0) →

Axon 3.0.5 Released

We have released Axon 3.0.5. It contains a few fixes and improvements

One of the improvements is for users that have migrated from Axon 2.4, allowing data stored in that version to still be used (as-is) in 3.0. Support for this is available in the ‘axon-legacy’ module.

The Event Store was unable to cope with timestamps that were stored in another timezone than UTC. The parser has been changed, so that times with explicit timezones are properly converted to an Instant.

The GenericJpaRepository was unable to work with aggregate identifiers other than String. In this release, a converter can be specified that converts the String value used in the Repository API to the value to use in the EntityManager API.

The GenericJpaRepository now loads entities using a write lock from the database. This ensures that an aggregate is only active on a single node at a time and prevents deadlocks when multiple threads attempts to upgrade the read lock to a write lock.

For a detailed overview of changes, check the release notes.

Posted in: News, Release notes

Leave a Comment (0) →

Axon 3.0.4 Released

Axon 3.0.4 has been released. It is a quick follow up on the 3.0.3 release and fixes some issues related to the distributed command bus in combination with Spring.

Due a timing issue in the configuration of several components, it was possible that certain Command Handlers were registered with the wrong Command Bus instance (the local segment instead of the distributed command bus). 3.0.4 addresses those issues.

Furthermore, 3.0.4 provides methods on the Configuration interface that provide access to the different submodules and Event Processors.

For full details of this release, check the release notes.

Posted in: News, Release notes

Leave a Comment (0) →

Axon 3.0.3 Released

Axon 3.0.3 has been released! This release contains quite a few fixes and improvements to earlier versions.

We have solved some issues related to the Spring Cloud components for the Distributed Command Bus. Nodes not accepting any commands themselves caused Class Cast exceptions on the other side, preventing them from participating at all. We have also included Spring Boot Auto Configuration for the Spring Cloud components.

The Tracking processor is now more resilient to failure and exposes its current state. It can now also be paused/resumed at Runtime.

The issue that prevents Axon to work nicely with Spring Boot Devtools has also been identified and fixed. That means it’s now possible to use the Axon starter modules in combination with Spring Boot Devtools.

For more details about this release, check the release notes.

Posted in: News, Release notes

Leave a Comment (0) →
Page 1 of 10 12345...»