Domain-Driven Design
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.
Demystifying repositories
6 min
|
Jan 10, 2023
Repositories are essential components in Axon Framework. However, they mostly remain behind the scenes, and developers don't need to interact with them directly. Usually, the framework can configure, instantiate and use the correct repository based on how the developer has constructed the domain components. That convenience sometimes leads to misunderstandings. Those are caused by the many meanings of the term "repository" and the assumptions developers make when they hear or read it.
Introducing the Axon Framework IntelliJ plugin
5 min
|
Mar 11, 2022
AxonIQ is introducing an IntelliJ plugin to make developing applications with Axon Framework and Axon Server even easier!
Distilling the CQRS/ES Capability
4 min
|
Apr 20, 2021
CQRS/ES are patterns and to be more specific they are Application Design patterns and their implementation spans across 3 main Architectural areas: structural and continuity, operational and extensibility, and cross-cutting and usability. To help pinpoint the exact implementation areas, let us look at two terms commonly used in Enterprise Architecture - Capabilities and Capability Maps.
Dispelling the Eventual Consistency FUD when using Event Sourcing
6 min
|
Mar 24, 2021
In the CQRS/ES space, we are equally guilty of not countering the FUD with enough examples and literature that gives relevant data points for folks wanting to adopt these patterns. What if I told you that your systems built with CQRS/ES are as transactionally consistent as systems built without these patterns using the more formal storage methods! Well, let’s walk through an example actually to prove it.
From Model to Code: Event Modeling & Axon Framework
6 min
|
Oct 27, 2020
Well, the "old me" would design an application "on the fly;" AKA, create a repository on GitHub, open it on IntelliJ, and BAM! You’ve got an application. Success? Sure… maybe for a simple application. But what about designing a large-scale application or a modular application with individual parts that can scale and evolve easily?
Bounded contexts with Axon
6 min
|
Apr 05, 2019
Bounded Contexts represent logical boundaries from a run-time perspective, defined by contracts within software artefacts where the model is implemented. In Axon applications, the contract (API) is represented as a set of messages (commands, events, and queries) which the application publishes and consumes. Bounded Contexts are a strategic concept in Domain Driven Design, and it is important to know how it is reflected in the architecture and organizational/team structure.
How to write an Axon application?
6 min
|
Nov 16, 2018
Learning to write a proper Axon application from scratch consists of various aspects. However, talking with AxonIQ customers, I found out that there's something we may need to be a little more clear about: What does the general structure of a real-life Axon application look like? What goes where, and how do you prevent a mess? In this blog, I'll try to shed some light on this topic.
Building Reactive Systems with Axon Framework
5 min
|
Jul 18, 2018
Unfortunately, old systems aren’t as responsive as we expect them to be. They cannot be scaled that easily. Instead, they use processor time, waiting for operations to complete when they could do something else (processing another request, doing some background calculations, etc.). In this blog, we will discuss why Axon Framework provides infrastructural components that help us build reactive systems.
How do I enhance events with data that is not part of the Aggregate?
5 min
|
May 31, 2017
To answer the question How do I enhance events with data that is not part of the Aggregate? I can provide several possibilities. I will list them here in this blog post.
How can I identify entities within an aggregate?
2 min
|
May 30, 2017
There are roughly three options for choosing identifiers: random, hash or sequential. The advantage of random and hash identifiers is that the client can generate the identifier, and reference an instance without the need to wait for the result of the creation command.

September 28th, Amsterdam
Join us for the AxonIQ Conference 2023, where the developer community attends to get inspired by curated talks and networking.

September 27th, Amsterdam
The event to collaborate, discuss, and share knowledge about techniques, tools, and practices for building complex, distributed event-driven applications.