Why Axon Framework?
Based on sounds architectural principles, such as Domain Driven Design and Command-Query Responsibility Segregation, Axon Framework provides a number of benefits, compared to more traditional architectural approaches.
Proven technology for DDD / event-sourcing / CQRS systems
Axon Framework is built on sounds architectural principles, such as DDD and CQRS. CQRS is an architectural pattern, which describes a clear distinction between two parts of an application: one that processes commands and one that executes queries on data. Separating these two domains enables developers to build less complex and better maintainable applications. Axon Framework enables developers to easily build their applications following this pattern without having to worry about the non-functional aspects of messaging between components.
Supports evolutionary approach to Microservices
Location transparency is key, when it comes to designing application components. By ensuring components are unaware of the components they interact with, evolving a monolith into microservices becomes as easy as configuring different messaging components. Axon provides these components, allowing to scale seamlessly from a single monolith, to hundreds of microservices. Axon Framework allows an application to scale when the non-functionals require so, and not a moment sooner.
Focus on business logic
Axon Framework provides the building blocks for components to communicate, and a simple to use API for configuring it. This allows developers to spend time on what's truly important: the business logic that sets you apart from your competition. As an application evolves, Axon ensures logical boundaries are maintained, so that an application remains its ability to scale out, when the non-functionals require it.
Integrates with Spring Boot and other frameworks
Axon Framework comes with a Spring Boot Starter, making using it as easy as adding a dependency. Axon will automatically configure itself based on best practices and other dependencies you have set. Providing explicit configuration is a matter of adding a bean of the component that needs to be configured differently. Furthermore, Axon Framework integrates with Spring Cloud Discovery, Spring Messaging and Spring Cloud AMQP.
Axon Framework is free. Axon’s sources are available in a Git repository on GitHub. Support is provided by the fast-growing community of Axon users (obviously, at AxonIQ, we're also happy to help).
Axon Framework enforces location transparency in its core APIs. Axon allows components to communicate through 3 different types of messages: Commands, Queries and Events, each with distinct routing patterns. By enforcing this throughout all components in an application, Axon Framework ensures applications can be physically separated into microservices and scaled out at all times, without any changes to business logic.
Axon Framework distinguishes between two types of components; query (read) and update (write) components. This means the information structure in these components can be optimized for the purpose at hand. As a result, query components have quick access to data that is already structured for its purpose. This in itself is a performance benefit, but also allows scaling for a specific component type.
Auditing and Analytics
Application security involves, amongst others features, authentication, authorization and auditing. While the first two are quite common in applications, auditing is often overlooked or found too costly to implement. Axon Framework provides support for Event Sourcing, providing the most reliable form of auditing, out of the box. Not only can unauthorized access be prevented, unauthorized use can be tracked down, too.
Besides auditing, Event Sourcing has also proven to provide for a valuable source of information for analytics. The Event Stream provides a reliable trail of everything that happened, based on which new insights can be calculated, since day 1.
As software systems evolve during their lifetime, they grow more complex. It is essential that complex systems themselves are built on simple, loosely coupled, components. Axon Framework provides clear and simple APIs for components to communicate in a location transparent way. This ensures that components remain loosely coupled, and can be simply interchanged with a new version.
Besides making components much easier to adjust, it also makes adding new components easier. By simply connecting to the message bus, addition of new components doesn’t require existing components to be modified. This is a huge advantage over the more traditional imperative programming approach.
Integration with third-party applications is often a source for accidental complexity. In the more traditional architectures, this involves writing code in different places to trigger communication with these external systems.
As the Axon Framework works with explicit messaging, you can easily add components which provides integration with 3rd party systems without intruding the original application behavior. This holds for both in- and outbound 3rd party systems. This architecture makes integration with several external systems possible, without increasing complexity.
Get started in less than 5 minutes
Learn more about Axon Framework
See what is new in our product suite
and find out useful news on Axon releases, invitations to AxonIQ events and other news