Command-Query Responsibility Separation

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.

Introducing the Axon Framework IntelliJ plugin

By Mitchell Herrijgers

    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

By Vijay Nair

    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

By Vijay Nair

    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.

Set Based Consistency Validation

By Yvonne Ceelie

    5 min

|

    Nov 11, 2020

Requests like “How do I ensure the email address in a User aggregate is unique?” reach us quite often. We can rephrase them: How do I consistently validate consistency among a set in such a system? These are issues encountered when using CQRS in combination with Event Sourcing. Due to this, they crop up when using Axon Framework. Before diving into how to tackle this with Axon, let us first explain the problem we face here.

CQRS replay performance tuning

By Frans van Buul

    7 min

|

    Jan 19, 2019

CQRS has become a popular pattern to avoid complex, and therefore slow, database queries in applications. Axon offers a mature and popular implementation of the CQRS/ES concepts on the JVM, but several other implementations exist. CQRS/ES presents a solution to a common performance problem. On the other hand, it introduces a couple of new potential performance challenges.

Some CQRS and Event Sourcing Pitfalls

By Frans van Buul

    6 min

|

    Dec 10, 2018

In one of our recent blogs, we talked about constructing a real-life Axon application. Which areas should you distinguish on a high level, and what code should go where? Which pitfalls are there that we should avoid?  I will cover some of these in this blog. It’s based on stuff I’ve seen happening for real when working with many Axon clients.

Demystifying Tracking Event Processors in Axon Framework

By Milan Savić

    6 min

|

    Nov 27, 2018

An important ingredient in the Framework is the explicit use of messages. One of the types of messages is events.In Axon Framework, there are two ways of event processing - subscribing and tracking. Therefore, the Framework provides Subscribing Event Processor (SEP) and Tracking Event Processor (TEP) components to support these two ways of event processing. This blog will discuss the features of TEP and how those are implemented.

Introducing Subscription Queries

By Frans van Buul

    8 min

|

    Jul 24, 2018

Axon Framework 3.3 has just been released, and it has several interesting new features. In this blog, I'd like to highlight one that I’m particularly excited about: subscription queries. Before we look into the implementation and some sample code, let’s have a quick look at the background of this feature.

Building Reactive Systems with Axon Framework

By Milan Savić

    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.

A message’s journey through Axon Framework

By Steven van Beelen

    2 min

|

    Dec 19, 2017

In your application, you probably have created a couple of components: client code that issues commands; a command handling component; an event handling component. But how does Axon Framework call these components precisely? This blog provides a representation that addresses this question.