Skip to main content

Axon Open Admin

Axon Open Admin is a Spring Boot starter for Axon Framework that enabled easy management for event processors, dead-letter queues and the event store. You can find it on Github.

axon-open-admin.png

This Spring Boot starter has been the basis for Inspector Axon, a product we incubated at AxonIQ and will become AxonIQ Console.

Origin

I developed this starter before I joined AxonIQ. At the time we were unable to use Axon Server, and we needed a way to manage the processors of our application. Rather than be the 1000th person to write custom management endpoints in his application, I decided to write a starter that would do it for me. At the time I worked at the/experts (back then called codecentric Netherlands), where we had 20% innovation time which we could spend on appropriate activies. I'm very thankful that we could!

How it works

Without a datasource to share data, the front-end acts as a data collector. The configured urls are polled at high rates, and the endpoints are all cached so the performance of them is high and impact on application performance is minimal. Because of the high rates, and the requirement of the round-robin load balancer, statistics are updated often enough to be useful. In addition, because there is no database, the configuration is very easy and the library is fully drop-in.

The front-end is aware of the actions needed to be taken at certain requests. For example, when merging segments, it will stop event processors on all nodes, call the merge action, and start the processor on all nodes again. It targets specific nodes in its request. If the wrong node is hit, it will return a 204 http status code and it will retry up to 10 times.

axon-open-admin-commands.png

Features

The starter provides the following features:

  • Starting and Stopping of Event Processors
  • Splitting and Merging of segments
  • Replaying of events
  • Various alerts, for example about Token Stealing
  • Dead Letter Queue management
  • Event store querying
  • Show statistics of messages
  • See flow of messages

The only requirement? The applications should be reachable behind a load balancer.

Message statistics and flow