Axon Framework Operations
Axoniq Platform can manage Axon Framework applications. To achieve this, it allows the platform to call your applications remotely. There is a specific contract of the actions that can be called.
Event processors
Event processors can be managed from Axoniq Platform. There are several actions that can be executed:
| Route | Description |
|---|---|
|
Start an event processor (if not started yet) |
|
Pause an event processor (if not paused yet) |
|
Tells the processor to split a segment in two, parallelizing the processing of the segment. |
|
Tells the processor to merge two segments into one, reducing the parallelization of the processing. |
|
Tells the processor to claim a segment for processing. This is used to distribute the segments between processors. |
|
Tells the processor to stop processing a segment and blocklist it for some seconds so another processor can take over. |
|
Tells the processor to reset the position of the processor to the given position. |
|
Get the status of the event processor. Used by the server during actions to refresh data more often than once every 5 seconds. |
|
Returns the full list of segments owned by a processor. Used by the platform when more detailed segment information is required than what is included in the periodic processor report. |
Some actions in this list may be called automatically by Axoniq Platform if configured to do so by the user.
For example, if automatic scaling of segments is enabled, the processor-command-split-segment and processor-command-merge-segment actions will be called by the console itself when needed to control the number of segments.
Dead letters
Dead letters can be managed from Axoniq Platform. There are several operations that can be done:
| Route | Description |
|---|---|
|
Queries the dead letters for a processing group, paginated. Will only return sensitive data if configured to do so. See below for configuration. |
|
Deletes a sequence of dead letters for a processing group. |
|
Deletes a specific dead letter. |
|
Tells the application to retry a dead letter. |
|
Tells the application to retry all dead letters in all sequences for a processing group. |
|
Tells the application to delete all dead letters in all sequences for a processing group. |
During the configuration of the client via the web interface, you will be able to choose various modes for the dead-letter queue (DLQ) data shown. The modes are:
Mode |
Description |
|
No data is shown at all, except the number of dead letters. |
|
Message payloads and diagnostic data won’t be shown. The aggregate identifier will be hashed. The event type and the optional exception will be shown as-is. |
|
Message payloads won’t be shown. The aggregate identifier will be shown as-is. From the diagnostics only the keys set in the axoniq.console.dlq-diagnostics-whitelist will be shown. |
|
All the message payloads, aggregate identifier, and the diagnostics data will be visible. |
In the absence of a configuration, the default mode is NONE.
Management
There are several management operations that can be used by Axoniq Platform:
| Route | Description |
|---|---|
|
Bidirectional liveness check. Both the client and the platform expose this route so either side can ping the other. |
|
Settings exchange route used by Axon Framework versions below 1.7.0. The client can pull its settings from the platform, and the platform can push updated settings to the client over the same route. Settings include the heartbeat interval, heartbeat timeout, and the report intervals for handler and processor metrics. |
|
Same as |
|
Pushed from Axoniq Platform to the client when its operational status changes. Used to enable or disable reporting from the client, for example when the workspace exceeds its application limit or its credit allowance. |
|
Pushed from Axoniq Platform to the client to write a log message into the client application’s logger. Used to surface platform-side notifications (such as exceeded application limits) directly in the application’s own logs. |
|
Requests a thread dump from a specific instance of the client application. Used by the diagnostics view in Axoniq Platform. |
Aggregates
Axoniq Platform has several functions related to aggregates. These are no longer included since version 2.0.0 of the connector for Axon Framework 5 and higher, as aggregates no longer exist.
There are several actions that can be executed:
| Route | Description |
|---|---|
|
Retrieves the domain events for a given aggregate identifier. |
|
Retrieves the aggregate state at a certain sequence by creating a snapshot and serializing. |