Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Axon 4.4 Improves Server Performance, Simplifies Framework Usage, and Enhances Developer Experience

Axon 4.4 Improves Server Performance, Simplifies Framework Usage, and Enhances Developer Experience

This item in japanese

AxonIQ has formally released Axon 4.4, a major release of the framework and server infrastructure that helps build event-driven microservices applications utilizing CQRS/event sourcing and domain-driven design (DDD).

The new release significantly improves performance and efficiency for Axon Server - including support for multi-tier storage, addition of replication groups and new index types for reading the event store. To help manage saga deadlines, Axon Server can now act as an event scheduler. The usage of the Axon Framework has been simplified through improvements in the Configuration API and availability of new annotations. The Axon Server API has been enhanced to allow building more types of clients and finally improved administrative capabilities for Axon Server.

From a developer experience perspective, Axon Framework can now be used in conjunction with Spring Boot developer tools by adding the required devtools dependency to your project. A new, revamped reference guide makes it easier to learn, build, deploy and administer Axon components.

Axon is a purpose-built platform to help build microservices-based applications using the event-driven architecture paradigm. It provides robust implementations for the event sourcing/CQRS patterns along with first class support for DDD techniques. Axon provides two main components - the open source Axon Framework which implements the full range of API capabilities required for event sourcing and message routing operations and Axon Server - a highly scalable, distributed, and purpose-built event store and zero-configuration message router. Axon Server comes in two flavours - Axon Server Standard Edition (Axon Server SE) which is open source and Axon Server Enterprise Edition (Axon Server EE) which is a paid option with more advanced capabilities (e.g. clustering).

Axon Server SE/EE now provides the capability to act as an event scheduler. Event schedulers are especially important for dealing with deadlines during the lifecycle of a saga process i.e. to make the saga do something if the deadline passes. The new Axon Server based implementation is in addition to the existing Quartz/Java based implementations already available. Axon Server SE/EE also now provides tag-based routing to control which command handler or query handler executes a command or query. For instance, you could tag commands with a country code and set the country code in the tags of the command handler application. In this case, Axon Server SE/EE will try to find a command handler with the same country code and send the command to that handler.

Axon Server EE adds multi-tier storage capabilities for its event store. With this ability, if you have a cluster of Axon Server EE nodes, you can choose to keep only the most recent event store on designated primary nodes and the entire event store on designated secondary nodes. The primary nodes can thus have faster (more expensive) disks, and the secondary nodes can have less expensive disks. This not only improves performance as the event store reads will typically be done on the most recent data, it also helps reduce storage costs.

Another significant performance improvement in Axon Server EE is the addition of a new indexing capability (JUMP_SKIP_INDEX) that significantly improves the reading of events from the Event Store using a global index format. To round off the performance changes, events from the event store are now read only from the followers and only the latest events are requested from the leader.

"Contexts" within Axon Server EE are comparable to logical databases in a RDBMS and may be used for "bounded contexts" in the DDD sense. Axon Server EE 4.4 introduces the concept of "replication groups" for contexts. Essentially since contexts could be spread across multiple nodes of an Axon Server EE cluster, there is an overhead associated with replicating its data. It is now possible to reduce this overhead by defining a replication group and associating multiple contexts to it.

Cluster templates are now available to quickly initialize a cluster including replication groups, contexts, users and applications. Axon Framework’s new release brings in simplification of usage across the entire feature set - Configuring snapshots via a snapshotter or SnapshotFilter have been made easier to do via the Configuration API. Component specific message handler interceptors can now be defined through a dedicated annotation, @MessageHandlerInterceptor, and a StatusChangeListener can now be configured for a TrackingEventProcessor. The new release also brings in a completely revamped Axon Server connector which is used by Axon Framework based applications to connect to Axon Server SE/EE. One of the goals of the connector is to simplify connecting non-Axon applications to Axon Server.

The release also coincides with the launch of a new Medium page which includes podcasts/blogs and articles about Axon, a series of fast-lane and full trainings, and finally the annual event-driven microservices conference which is going virtual this year.

Rate this Article