axoniq/axonserver

By axoniq

Updated 22 days ago

Axon Server provides message routing and an event store for message-driven applications.

Image
Databases & Storage
Integration & Delivery
Monitoring & Observability

1M+

Axon Server

Supported tags
  • Eclipse Temurin based, multi-platform images:

    Axon Server is installed in "/axonserver" and the exported volumes are "/axonserver/data" (ControlDB and PID file), "/axonserver/events" (events and snapshots), "/axonserver/log" (replication log), "/axonserver/config" (for an optional extra "axonserver.properties" file), and "/axonserver/plugins" (for the plugin cache).

    • 2024.2.3, 2024.2.3-jdk-17, latest, latest-jdk-17

      These run Axon Server as user "root" using a Java 17 runtime.

    • 2024.2.3-nonroot, 2024.2.3-jdk-17-nonroot, latest-nonroot, latest-jdk-17-nonroot

      These run Axon Server as user "axonserver" using a Java 17 runtime.

  • distroless-java 11 based (gcr.io/distroless/java:11), amd64-only images:

    • 4.6.9

Previous versions can be found in the tags section.

Quick Reference

Release Notes for version 2024.2.3

Bug fixes and improvements:

  • Updated access control for purging the event store in dev mode. The action now requires the CONTEXT_ADMIN role.
  • Fixed a bug that caused problems when creating a new context in the presence of a user with permissions on *.
  • Adjusted configdb parameters, so that the database is closed only once. This resolves exceptions being logged at shutdown.
  • OAuth extension now takes context path into account when generating URLs.
  • OAuth extension supports setting the desired algorithm for id token signature using the property idTokenSignatureAlgorithm.

Release Notes for version 2024.2.2

Bug fixes and improvements:

  • Fixed auto-cluster issue when internal-domain property is set in axonserver properties.
  • Moved option to export traces to Jaeger to an extension. To migrate, move the jar files in the extensions/axon-server-extensions-jaeger-2024.2.2.zip to the exts directory in the Axon Server installation directory.

Release Notes for version 2024.2.1

Bug fixes and improvements:

  • update packaged versions of LDAP and OAuth extensions

Release Notes for version 2024.2.0

Bug fixes and improvements:

  • Improved the stability of changes to cluster topology. When changing cluster topology, e.g., adding or removing nodes from replication groups, previously occurring instabilities have been fixed by revising the implementation of configuration changes.
  • Improved performance of message routing with many clients. If the environment contains many client applications (more than 500), there previously were noticeable performance impacts. These have been fixed, and explicit configuration options have been provided.
  • All-new AxonServer grafana dashboard. The dashboard we provide for Grafana was completely reworked from scratch to simplify interpretation while at the same time improve accuracy. The new dashboard reflects the new metrics introduced in previous versions.
  • Fixed a bug in the search screen, resulting in results from the previous search being mixed with the current one.
  • Better integration in Axoniq Console
  • Upgraded dependencies. AxonServer was upgraded to the latest dependencies available wherever possible.
  • Adding a node with an already existing node name now fails gracefully
  • Improved contents of the diagnostics package
  • Ephemeral contexts now remove entries from the global index

Release Notes for version 2024.1.4

Bug fixes and improvements:

  • Redistribute clients across Axon Server nodes when a node is restarted with access control enabled
  • UI fixes for non-admin users
    • username and roles visible on top of the page
    • user's contexts are now visible in the dropdown list for Search/Commands/Queries/Events pages
    • user's contexts are now visible in the Context page

Release Notes for version 2024.1.3

Bug fixes and improvements:

  • Axon Server node should return information about the clients connected to that node only
  • Backing up the RAFT log entries should take into account the replication group rather than the context
  • Record handling duration for the initial query of a subscription query
  • Persistent streams improvements:
    • Prevent closing the stream for slow clients
    • Improved error handling

Release Notes for version 2024.1.2

Bug fixes and improvements:

  • Redistribute clients across Axon Server nodes when a node is restarted
  • Event processor operations fail when the processing group contains a forward slash
  • Potential replication issue when trying to apply events for already closed contexts during shutdown of Axon Server
  • Increased maximum length for the username to 255 characters
  • Update the event store size when a new index file is created
  • Visual improvements in search table: headers not visible by default & action not visible by default
  • Improved logging in the event store
  • Stop replication applying process when the replication group is stopped
  • Global Index pre-load for configured contexts

Release Notes for version 2024.1.1

Bug fixes and improvements:

  • Revert optimization in replication from version 2023.2.4, as it could lead to a node entering fatal state
  • Stop Axon Server from redirecting a client to a node that is in fatal state
  • Reduce communication between the leader and follower and logging when a node is starting up
  • Search page improvements
  • Set correct permissions for persistent stream API calls
  • Add validation of newly created index files
  • Allow non-pristine clusters to connect to Console
  • Fix the event store size in the context page

Release Notes for version 2024.1.0

Persistent streams

Persistent streams provide the option to open an event stream from a client and let Axon Server track the progress. This was already available as a preview version in 2024.0, but is now available by default. Persistent streams are supported in Axon Framework 4.10 as an alternative to tracking or pooled streaming event processors.

For more information see subcribing event processor in the Axon Framework section.

Bug fixes and improvements
  • Prevent stale threads when an Axon Server node closes the connection to another node
  • Clean up metrics from disconnected clients
  • prevent WARN log messages when a query completed message was received from an unexpected client
  • Allow context with ephemeral events without a license
  • Fix for listing event processors when there are more than 512 event processors
Docker image changes

The default Java version for the Docker images has changed from Java 11 to Java 17. This means that the docker images with tag "latest", "latest-nonroot", "2024.1.0", and "2024.1.0-nonroot" use Java 17. Java 11 based images are still available with the "-jdk-11" extensions in the tag name.

Dependency updates
  • gRPC version updated to 1.65.1

Release Notes for version 2024.0.4

Fixes and improvements:

  • Fix for a problem starting up Axon Server with plugins configured
  • Removed race condition causing a possible delay in receiving the first event on a newly registered event handler
  • Improve the diagnostics package to contain full log information when "logging.config" property is set

Release Notes for version 2024.0.3

Fixes and improvements:

  • Add an option to reduce the number of global index segments Axon Server checks when the first event for a new aggregate is stored. This can be configured globally with the property "axoniq.axonserver.event.global-index-segments-check" or on a context level with the property "event.global-index-segments-check". The value is the number of global index segments to check, with a minimal value of 2.
  • Fix for Control DB migration in case of plugin configuration properties with long values
  • Updating a license through Axon Console now takes effect immediately
  • Improved distribution of queries to different instances of the query handlers

Release Notes for version 2024.0.2

Fixes and improvements:

  • Updating a license through Axon Console now takes effect immediately
  • Reduced memory usage for internal communication
  • Reduced the number of threads used with a large number of contexts
  • UI improvements
    • The dialogs for adding replication groups, API tokens, and users were not always cleared when opened
    • show the number of events in each context
    • improved notification when the current version is not the latest one
    • add an option to set X-Frame-Options to SAMEORIGIN in the response messages

New configuration parameters:

  • axoniq.axonserver.accesscontrol.same-origin=false (true sets the X-Frame-Options header to SAMEORIGIN)
  • axoniq.axonserver.event-store-background-thread-count=8
  • axoniq.axonserver.event-store-processors-thread-count=8

Release Notes for version 2024.0.1

  • Fix the increasing number of threads on the running Axon Server nodes when one node in the cluster is down.
  • Small fixes in the replication process:
    • remove delay in starting to synchronize with a node that is far behind
    • improve the performance for a follower catching up with the leader
    • prevent situations where a follower attempts to apply replication log entries that were already included in a snapshot
  • Fix for authentication issue when multiple applications have the same token
  • UI, copy token to clipboard fails when not running on a trusted URL
  • UI, improved validations for applications, replication groups and contexts operations
  • Improved handling for missing connection to Axon Console
  • Support for Google Marketplace licenses
  • Axon Server now performs a clean shutdown when it was started with an incorrect node name or internal hostname/port

Release Notes for version 2024.0.0

Database Update

Updated H2 database to store the Control DB, addressing some issues from previous H2 version (see the upgrade instructions in https://library.axoniq.io/axon_server_upgrade/upgrading_as_2024.html).

New Features and Improvements

Redesigned User Interface: The UI has been completely revamped with a modern look and feel for a better user experience. The changes include:

  • Simplified Overview Page: Access node information easily with filtering and scaling options.
  • Dedicated License Page: Track license expiry dates and view available features for non-enterprise users.
  • Monitoring Page: View important health information, display logs, and download diagnostic packages.
  • System Tasks: List and cancel running system tasks.
  • Search Event Store Page: Improved usability with removable columns, formatted code styles, and auto-composable queries.
  • Command and Queries Pages: Revamped for a better overview of messages in the system.
  • Long-Running Commands Component: View and cancel commands running longer than 1 second.
  • Scheduled Events Page: View and cancel scheduled events.
  • Streams Page (Experimental): Accessible for persistent streams if dev mode is enabled.
  • API Tokens (formerly Applications): Renamed for clarity, with improved token management.
  • Support for Wide Screens and Dark/Light Themes: Enhanced viewing experience.
  • Connection, Health, and Early Event Processor Issue Detection: Improved issue detection and resolution.
  • Embedded Documentation Snippets: Access documentation directly within the UI.

Preview of new persistent streams feature, event streams where Axon Server manages the publication of events to clients and keeps track of the progress. This feature is enabled when development mode is enabled or when axoniq.axonserver.preview.persistent-streams property is set to true.

Release Notes for version 2023.2.6

  • Add an option to reduce the number of global index segments Axon Server checks when the first event for a new aggregate is stored. This can be configured globally with the property "axoniq.axonserver.event.global-index-segments-check" or on a context level with the property "event.global-index-segments-check". The value is the number of global index segments to check, with a minimal value of 2.

Release Notes for version 2023.2.5

Bug fixes:
  • Reduce memory usage in communication between Axon Server nodes.

Release Notes for version 2023.2.4

Bug fixes:
  • Fix the increasing number of threads on the running Axon Server nodes when one node in the cluster is down.
  • Small fixes in the replication process:
    • remove delay in starting to synchronize with a node that is far behind
    • improve the performance for a follower catching up with the leader
    • prevent situations where a follower attempts to apply replication log entries that were already included in a snapshot
  • Fix for authentication issue when multiple applications have the same token

Release Notes for version 2023.2.3

Bug fix:
  • Increasing number of threads on the running Axon Server nodes when one node in the cluster is down.

Release Notes for version 2023.2.2

Bug fixes:
  • Fix for an error handling subscription query responses during the upgrade from a version before 2023.2.0 to 2023.2.0 or 2023.2.1.
  • Improved readiness probe to return 200 (OK) once the communication services are ready and the replication groups are completely initialized. The endpoint for the new readiness probe is /actuator/health/readiness.

Release Notes for version 2023.2.1

Bug fixes:
  • TLS communication between Axon Server nodes cannot validate trusted certificates when there is no trust manager file configured
  • Deleting a context does not delete all its metrics

Release Notes for version 2023.2.0

TLS Certificate and Key Replacement at Runtime

Axon Server now supports the hot (runtime) replacement of certificates and keys used for TLS, eliminating the need for server restarts.

Enhanced Metrics Exposure

We have revamped the metrics exposed by Axon Server for better clarity and comprehensibility. Adhering to the 4 golden signals terminology, metrics are now systematically organized. Users can access both old and new style metrics in this version. However, there’s an option to disable the old style metrics.

Upgraded Diagnostics Package

To aid in issue resolution, Axon Server now provides a more comprehensive diagnostics package. The package now contains more detailed information about raft status. It offers a snapshot of metrics and health information. There’s a listing of files in the replication group. Information about multi-tier storage is included. Logs are included as well.

Other Improvements
  • We’ve addressed various security concerns through dependency updates. Additionally, several bugs have been identified and rectified.
  • The role ‘MONITOR’ is now granted permission to access the ‘internal/raft/status’ endpoint.
  • We’ve transitioned to new versions for some of the external libraries used in Axon Server.

Release Notes for version 2023.1.2

Bug Fixes:

This release contains fixes for the following issues:

  • Metrics no longer collected when an application reconnects to Axon Server

Release Notes for version 2023.1.1

New Features and Enhancements:

Initialize standalone

To simplify initialization of Axon Server, it now supports a new property "axoniq.axonserver.standalone=true". When this property is set on a clean Axon Server instance it initializes the server with a "default" context.

Development mode

Fixed the option to reset the event store from the UI (in development mode). This option now also works in an Axon Server cluster.

LDAP extension update

The new version of the LDAP extension supports configuration of a trust manager file. The location of the file can be specified through the property "axoniq.axonserver.enterprise.ldap.trust-manager-file".

Bug Fixes:

This release contains fixes for the following issues:

  • Validation of tiered storage properties when not using the UI
  • Race condition while writing to the global index
  • Limitation on the number of requests per context fails if there are timed out requests

Release Notes for version 2023.1.0

New Features and Enhancements:

Event Transformation

The new Event Transformation feature allows users to perform specific event transformations like updates and deletes in the event store, utilizing the Event Transformation API. This functional change is intended to facilitate more flexible event management in rare instances where modifications are unavoidable.

Forced Client Reconnection

In the application view, users are now provided with an option to force the client to reconnect. This addition aims to offer a practical tool for addressing client connectivity issues.

Node Removal from Cluster

It is now possible to remove a node from the cluster through the user interface (UI). This functionality, previously accessible only via the command-line interface (CLI) and REST API, has been expanded to the UI for broader accessibility.

Temporary Adjustment to Development Mode

In this release, we have temporarily disabled the 'Development Mode/Event Purge' feature. Users should now utilize the 'Delete/Create Context' operation as an alternative. This change will remain in place until a more efficient solution is implemented.

Enhanced Memory Management

In an effort to optimize performance, we have updated Axon Server's approach to memory management for file resources. Prior to this release, Axon Server primarily depended on the Java garbage collector to reclaim memory used by memory-mapped files. With this update, memory management is now undertaken directly by Axon Server, enhancing efficiency in file resource usage.

Bug Fixes

This release also contains fixes for the following issues:

  • Replication group creation did not work in conjunction with the HTTPS (-s) option
  • Race condition in unregister node leaves node partially in the cluster
Product Updates

Unified Axon Server artifact

The Axon Server artifact has been updated to simplify the deployment process. Instead of separate artifacts for the Axon Server Standard Edition and Enterprise Edition, from now on we are releasing a single artifact. The Axon Server features will adjust automatically based on the presence of a provided license. Note that the Axon Server Standard Edition remains open-source, but separate releases will no longer be made.

Release notes for previous versions can be found in the Release notes section of the reference guide

Running Axon Server

To run Axon Server in Docker, you can use the image provided on Docker Hub:

$ docker run -d --name my-axon-server -p 8024:8024 -p 8124:8124 axoniq/axonserver
...some container id...

For more information on how to run Axon Server in a Docker/Kubernetes environment, check the reference guide.

Configuring Axon Server

Axon Server uses sensible defaults for all of its settings, so it will actually run fine without any further configuration. However, if you want to make some changes, below are the most common options.

Environment variables for customizing the Docker image of Axon Server
  • JAVA_TOOL_OPTIONS (prior to 4.3 JAVA_OPTS)

    This is used to pass JVM options. Default is to use it for heap size setting, with "-Xmx512m".

  • AXONIQ_AXONSERVER_NAME

    This is the name the Axon Server uses for itself.

  • AXONIQ_AXONSERVER_HOSTNAME

    This is the hostname Axon Server communicates to the client as its contact point. Default is "localhost", because Docker generates a random name that is not resolvable outside of the container.

  • AXONIQ_AXONSERVER_DOMAIN

    This is the domain Axon Server can suffix the hostname with.

  • SERVER_PORT

    This is the port Axon Server uses for its Web GUI and REST API.

  • AXONIQ_AXONSERVER_PORT

    This is the gRPC port used by clients to exchange data with the server.

  • AXONIQ_AXONSERVER_ACCESSCONTROL_ENABLED

    Setting enabled to true will enable access control.

Docker Pull Command

docker pull axoniq/axonserver