Orchestrate complex business processes

Axoniq's workflow orchestration is built natively into the Axoniq Framework. Imperative, top-down code for multi-step business processes that resume from failure and store every step permanently. Event store included.

app.axoniq.io
Axoniq Platform·Workflows
acme-store
StatusRunning
Run IDwrun_02456KXR
Duration0ms
0300ms600ms900ms1200ms
workflow()
fetchOrder()
validate()
processPayment()
waiting
processPayment()
saveOrder()
sendEmail()

From open source to enterprise, Axoniq powers mission-critical software across global organizations.

From open source to enterprise, Axoniq powers mission-critical software across global organizations.

From open source to enterprise, Axoniq powers mission-critical software across global organizations.

THE CHALLENGE OF TRADITIONAL WORKFLOW TOOLS

Most workflow engines run the workflow and discard the trail.

Axoniq makes the trail your system of record.

Multi-step business processes — order fulfillment, claims approvals, customer onboarding — are the backbone of every enterprise application. They're also the most fragile thing your team owns.

Most workflow tools solve the execution problem but introduce a new one: a separate infrastructure cluster to operate, an opaque execution log that expires on a retention window, and a runbook your platform team has to maintain indefinitely.

When the regulator asks what your system decided in Q3 2024, most workflow engines can't answer. The retention window has passed. The trail is gone.

Axoniq keeps the trail permanently — as business-meaningful events your compliance team can query directly.

Why workflows?

A workflow engine for business processes

Write imperative, top-down code. Every step executes reliably, resumes automatically from the exact point of failure, and is stored permanently as a business-meaningful event in your event store. Your compliance team gets a queryable audit trail. Your engineers get clean, readable code.

Top-down code instead of scattered event handlers

Instead of distributing orchestration logic across event handlers and writing brittle state management code, developers use one central orchestration layer. Commands, queries, parallel tasks, and external service calls coordinated from one place. The flow is explicit. The state is traceable.

src/order/
Saga
OrderSaga.java
StockReservedHandler.java
PaymentRejectedHandler.kt
PaymentConfirmedHandler.java
PaymentTimedOutHandler.java
OrderCanceledHandler.java
ShipmentDispatchedHandler.java
ShipmentFailedHandler.java
TSShipmentTracker.ts
9 handlers · 9 state fields
OrderWorkflow.java
Workflow
1
@Workflow(startOnEvent = "OrderPlaced",
2
idProperty = "orderId")
3
public void execute(
4
SimpleWorkflowContext ctx) {
5
ctx.awaitExecute("reserveStock",
6
inventory::reserve);
7
ctx.awaitExecute("initiatePayment",
8
payment::initiate,
9
RetryPolicy.maxRetries());
10
ctx.awaitEvent("awaitConfirmation",
11
PaymentConfirmed.class,
12
Duration.ofMinutes());
13
ctx.awaitExecute("shipOrder",
14
shipping::ship);
15
}
1 method · 0 state fields · durable by default
Order Fulfillment
Running
OrderFulfillment.process·7 steps · 2 retries
Validate payment
running
validate(order)
Durable execution · resumes from last completed step0.0s
Order Fulfillment
Running
OrderFulfillment.process·7 steps · 2 retries
Validate payment
running
validate(order)
Durable execution · resumes from last completed step0.0s

Handles the hard parts
of distributed systems

Orchestration primitives

Pause for days or years, wait for approvals, fan-out/fan-in, handle timeouts.

Automatic crash recovery

Workflows resume from the exact point of interruption. No restarts from zero.

No manual error handling

Retries, compensating actions, and failure logic live in the engine.

Generates a business-meaningful audit trail

Other workflow tools emit opaque, temporary technical logs that are eventually deleted. Axoniq records every single step directly into your event store as a business-meaningful domain event. The result is a forensic-grade, permanent history of the process.

Event storeEvery workflow step is logged into Axon Server, an immutable event store.
847,213 events
Order·100·OrderFulfillment
Reserve14:37:0014:37:01
Charge14:37:0214:37:04
Await14:37:0514:37:09
Ship14:37:1014:37:12
Loan·150·LoanApproval
CheckCredit14:37:1114:37:12
AwaitDocs14:37:1314:37:16
UnderwriterReview14:37:1714:37:28
Disburse14:37:2914:37:32
Refund·200·RefundProcessing
Validate14:37:2214:37:23
Approve14:37:2414:37:28
Issue14:37:2914:37:38
Notify14:37:3914:37:43
User·250·UserOnboarding
CreateAccount14:37:3314:37:34
VerifyEmail14:37:3514:37:40
AwaitProfile14:37:4114:37:48
Activate14:37:4914:37:54
Report·300·ReportGeneration
Aggregate14:37:4414:37:45
Compute14:37:4614:37:48
Render14:37:4914:37:54
Email14:37:5514:38:01
Doc·350·DocumentReview
Parse14:37:5514:37:56
AwaitApproval14:37:5714:38:00
Stamp14:38:0114:38:13
Archive14:38:1414:38:16
Sub·400·SubscriptionRenewal
Charge14:38:0614:38:07
AwaitConfirm14:38:0814:38:12
Provision14:38:1314:38:23
Notify14:38:2414:38:27
Payment·359·PaymentRetry
Verify14:38:1714:38:18
Authorize14:38:1914:38:24
Settle14:38:2514:38:33
Confirm14:38:3414:38:38
Order·409·OrderFulfillment
Reserve14:38:2814:38:29
Charge14:38:3014:38:32
Await14:38:3314:38:39
Ship14:38:4014:38:45
Loan·459·LoanApproval
CheckCredit14:38:3914:38:40
AwaitDocs14:38:4114:38:44
UnderwriterReview14:38:4514:38:49
Disburse14:38:5014:38:56
Refund·509·RefundProcessing
Validate14:38:5014:38:51
Approve14:38:5214:38:56
Issue14:38:5714:39:08
Notify14:39:0914:39:11
User·559·UserOnboarding
CreateAccount14:39:0114:39:02
VerifyEmail14:39:0314:39:08
AwaitProfile14:39:0914:39:18
Activate14:39:1914:39:22
Report·609·ReportGeneration
Aggregate14:39:1214:39:13
Compute14:39:1414:39:16
Render14:39:1714:39:24
Email14:39:2514:39:29
Doc·659·DocumentReview
Parse14:39:2314:39:24
AwaitApproval14:39:2514:39:28
Stamp14:39:2914:39:34
Archive14:39:3514:39:40
Sub·618·SubscriptionRenewal
Charge14:39:3414:39:35
AwaitConfirm14:39:3614:39:40
Provision14:39:4114:39:53
Notify14:39:5414:40:00
Payment·668·PaymentRetry
Verify14:39:4514:39:46
Authorize14:39:4714:39:52
Settle14:39:5314:40:03
Confirm14:40:0414:40:06
Order·718·OrderFulfillment
Reserve14:39:5614:39:57
Charge14:39:5814:40:00
Await14:40:0114:40:09
Ship14:40:1014:40:13
Loan·768·LoanApproval
CheckCredit14:40:0714:40:08
AwaitDocs14:40:0914:40:12
UnderwriterReview14:40:1314:40:19
Disburse14:40:2014:40:24
Refund·818·RefundProcessing
Validate14:40:1814:40:19
Approve14:40:2014:40:24
Issue14:40:2514:40:29
Notify14:40:3014:40:35
User·868·UserOnboarding
CreateAccount14:40:2914:40:30
VerifyEmail14:40:3114:40:36
AwaitProfile14:40:3714:40:48
Activate14:40:4914:40:55
Order·100·OrderFulfillment
Reserve14:37:0014:37:01
Charge14:37:0214:37:04
Await14:37:0514:37:09
Ship14:37:1014:37:12
Loan·150·LoanApproval
CheckCredit14:37:1114:37:12
AwaitDocs14:37:1314:37:16
UnderwriterReview14:37:1714:37:28
Disburse14:37:2914:37:32
Refund·200·RefundProcessing
Validate14:37:2214:37:23
Approve14:37:2414:37:28
Issue14:37:2914:37:38
Notify14:37:3914:37:43
User·250·UserOnboarding
CreateAccount14:37:3314:37:34
VerifyEmail14:37:3514:37:40
AwaitProfile14:37:4114:37:48
Activate14:37:4914:37:54
Report·300·ReportGeneration
Aggregate14:37:4414:37:45
Compute14:37:4614:37:48
Render14:37:4914:37:54
Email14:37:5514:38:01
Doc·350·DocumentReview
Parse14:37:5514:37:56
AwaitApproval14:37:5714:38:00
Stamp14:38:0114:38:13
Archive14:38:1414:38:16
Sub·400·SubscriptionRenewal
Charge14:38:0614:38:07
AwaitConfirm14:38:0814:38:12
Provision14:38:1314:38:23
Notify14:38:2414:38:27
Payment·359·PaymentRetry
Verify14:38:1714:38:18
Authorize14:38:1914:38:24
Settle14:38:2514:38:33
Confirm14:38:3414:38:38
Order·409·OrderFulfillment
Reserve14:38:2814:38:29
Charge14:38:3014:38:32
Await14:38:3314:38:39
Ship14:38:4014:38:45
Loan·459·LoanApproval
CheckCredit14:38:3914:38:40
AwaitDocs14:38:4114:38:44
UnderwriterReview14:38:4514:38:49
Disburse14:38:5014:38:56
Refund·509·RefundProcessing
Validate14:38:5014:38:51
Approve14:38:5214:38:56
Issue14:38:5714:39:08
Notify14:39:0914:39:11
User·559·UserOnboarding
CreateAccount14:39:0114:39:02
VerifyEmail14:39:0314:39:08
AwaitProfile14:39:0914:39:18
Activate14:39:1914:39:22
Report·609·ReportGeneration
Aggregate14:39:1214:39:13
Compute14:39:1414:39:16
Render14:39:1714:39:24
Email14:39:2514:39:29
Doc·659·DocumentReview
Parse14:39:2314:39:24
AwaitApproval14:39:2514:39:28
Stamp14:39:2914:39:34
Archive14:39:3514:39:40
Sub·618·SubscriptionRenewal
Charge14:39:3414:39:35
AwaitConfirm14:39:3614:39:40
Provision14:39:4114:39:53
Notify14:39:5414:40:00
Payment·668·PaymentRetry
Verify14:39:4514:39:46
Authorize14:39:4714:39:52
Settle14:39:5314:40:03
Confirm14:40:0414:40:06
Order·718·OrderFulfillment
Reserve14:39:5614:39:57
Charge14:39:5814:40:00
Await14:40:0114:40:09
Ship14:40:1014:40:13
Loan·768·LoanApproval
CheckCredit14:40:0714:40:08
AwaitDocs14:40:0914:40:12
UnderwriterReview14:40:1314:40:19
Disburse14:40:2014:40:24
Refund·818·RefundProcessing
Validate14:40:1814:40:19
Approve14:40:2014:40:24
Issue14:40:2514:40:29
Notify14:40:3014:40:35
User·868·UserOnboarding
CreateAccount14:40:2914:40:30
VerifyEmail14:40:3114:40:36
AwaitProfile14:40:3714:40:48
Activate14:40:4914:40:55

What makes Axoniq different

Four differences that matter when engineering teams compare workflow orchestration tools.

Event store included

Others require you to deploy and manage heavy, dedicated server clusters and separate worker databases. Axoniq workflows are designed as a lightweight module that plugs natively into Axon Server (or Postgres setup), meaning there is no new heavy infrastructure to provision.

Execution architecture

Others run state machines on dedicated external servers that send requests back to your application. Axoniq runs the execution and state machine entirely within your client application, using Axon Server only to store and deliver events. Better scalability, less latency, lower operational footprint.

Business-meaningful events vs. technical logs

Others emit opaque, low-level technical logs that are hidden, retention-limited, and eventually deleted. Axoniq workflows records every step directly into the event store as a business-meaningful domain event your team can read, query, and audit.

Permanent history for analytics and AI

Because Axoniq integrates workflow events directly into your permanent domain model, the data is fully accessible for business analytics and serves as a forensic-grade history backbone for AI agents.

Join the Thousands of Developers

Already Building with Axon in Open Source

Join the Thousands of Developers

Already Building with Axon in Open Source

Join the Thousands of Developers

Already Building with Axon in Open Source

80% of Fortune 100 companies use Axon Framework.

POC and implementation support with our Solutions Architects

Cluster sizing and multi-region high availability planning with our Solutions Architects

Migration support from Kafka, Postgres, or other solutions

Tap into our deep knowledge base on audit and compliance for regulated workloads