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 as well as specialized infrastructure to provide enterprise-ready operational support for the programming model - especially for scaling and distributing mission-critical business applications. Axon is composed of the following concepts and products.
Domain-Driven Design (DDD) defines many concepts and patterns that help design software effectively, in line with the business requirements. Axon separates infrastructural concerns from the domain logic, which, combined with DDD best practices, keeps complexity to a minimum.
Event Sourcing is a pattern for data storage, where instead of storing the current state of any entity, all past changes to that state are stored. With Axon Framework, you can implement Event Sourcing with minimal boilerplate code, giving you the benefits of Event Sourcing, without the hassle.
CQRS is an architectural pattern that prescribes a strict split within an application and suggests isolating the command and query components from one another. Axon helps by providing the necessary building blocks and infrastructure to build and run these components and dispatch messages (commands, events, and queries) to the right destination within an application.
Microservices is a distinctive architectural style that has become popular in recent years as businesses aim to become more agile. The Microservices approach breaks development down into manageable segments, improving efficiency and reducing the time required for new deployments. Microservices architecture is trendy for greenfield development projects, but it can also be applied to traditional applications post-launch.