Axon provides a unified, productive way of developing Java applications that can evolve without significant refactoring from a monolith to Event-Driven microservices. Axon includes both a programming model and specialized infrastructure to provide enterprise-ready operational support for the programming model - especially for scaling and distributing mission-critical business applications. The programming model is provided by the popular Axon Framework, while Axon Server is the infrastructure part of Axon, all open-sourced. If you want to scale up, go for Axon Server Enterprise and reach out for details about pricing and possibilities.
Open Source - Axon Framework and Axon Server (Enterprise)
The open-source Axon Framework provides a clean, elegant Java API for writing DDD, CQRS, and Event Sourcing applications. It provides basic building blocks for writing aggregates, commands, queries, events, sagas, command handlers, event handlers, query handlers, repositories, communication buses, and so on. It allows configuration hooks for pluggable infrastructure to support these building blocks. It utilizes intelligent defaults while allowing for configuration overrides. It supports popular technologies such as Spring Boot.
About Axon Framework
Axon Server is designed to meet all of the infrastructure needs of an Axon application. Axon Server is the easiest and most robust way to meet these infrastructure concerns because it just works out of the box. Specifically, Axon Server supports purpose-built event storage, routing, manual scaling of tracking processors, event store queries, basic monitoring, basic security, and basic messaging interoperability.
About Axon Server
Axon Server Enterprise
Axon Server Enterprise contains all the features of the free Axon Server (standard edition). On top of it, it offers advanced support options, multi-context, and clustering with multiple nodes.
About Axon Server Enterprise
Scalability and Performance
CQRS and Axon distinguish between two types of application 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.
Auditability and Transparency
Application security involves, amongst other 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 is focused on Event Sourcing, providing the most reliable form of auditing. Besides security, auditing is a critical business and regulatory requirement for many applications.
As software systems evolve during their lifetime, they often grow more complex. One proven way to manage complexity is decomposing the application into simple, loosely coupled components. Axon provides clear APIs for components to communicate in a loosely coupled way. Loose coupling means components can be easily interchanged as business needs evolve. Besides making components much easier to adjust, loose coupling also makes adding new components easier. By simply connecting to an existing loosely coupled event, the addition of new components doesn’t require existing components to be modified. This is a huge advantage over the more traditional imperative programming approach.
Application and Business Insights
The Event Sourcing paradigm championed by Axon is proven to provide a valuable source of information for analytics and reporting. The Event Stream provides a reliable trail of everything that happened in the application, based on which new and unanticipated insights can be calculated from day one.
In addition, because Axon is the central hub of all communication in the system, it can provide real-time insight into what is going on in the application. This is especially important for debugging and tuning distributed applications.