We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Comparisons
Documentation
(ReckonDB + evoq) vs Axon Server + Axon Framework
Axon is a full CQRS/ES platform: Axon Framework (open source Java library) provides the command bus, aggregates, sagas, and projections; Axon Server (separate product) provides the event store and message bus. The correct comparison is the full ReckonDB stack, reckon-db as the store, evoq as the framework.
Axon Server 2025.1 added DCB support (via new gRPC endpoints matching the dcb.events specification). Axon Framework 5, currently in milestone preview, makes DCB a first-class concept. This makes Axon the most feature-complete competitor in the Java space.
The Short Version
| ReckonDB + evoq | Axon Server + Axon Framework | |
|---|---|---|
| Framework language | Erlang/Elixir (BEAM) | Java (Spring-compatible) |
| Framework status | ✅ Production | 🟡 AF5 in milestone preview |
| Store | Khepri/Ra (BEAM Raft) | Proprietary clustering |
| Store license | Apache-2.0 | Open core ($40/mo for 3-node cluster) |
| gRPC API | ✅ | ✅ |
| HTTP/JSON API | ❌ (planned) | ✅ |
| Multi-language clients | ✅ (Go, Erlang/Elixir; Python planned) | ✅ (Go, .NET, Python, JS, Rust, Swift) |
| DCB | ✅ production, Raft-atomic | 🟡 experimental, not for production |
| DCB filter algebra | ✅ and/or composable | 🟡 tags + event types (details TBD) |
| CQRS: commands + aggregates | ✅ | ✅ |
| CQRS: process managers / sagas | ✅ | ✅ (mature, compensation support) |
| Projections / read models | ✅ | ✅ (event processor segments) |
| Competing consumers | 🟡 (in development) | ✅ (segment-based, mature) |
| Web admin UI | ❌ | ✅ |
| Managed cloud | ❌ | ✅ Axon Cloud |
| Tamper resistance | ✅ HMAC + hash chain | ❌ |
Licensing Reality
evoq + ReckonDB: Both Apache-2.0. No usage limits, no tiers, no commercial agreement required for clustering.
Axon Framework: Apache-2.0, free, Java only.
Axon Server: Open core.
- Developer plan: free, single node, suitable for development and evaluation only
- Professional plan: $40/month for a 3-node cluster
- Enterprise: custom pricing
If you need a clustered Axon Server in production, you’re on a commercial plan. This is not inherently a problem, $40/month for 3-node HA is reasonable, but it means the total cost of Axon at scale includes a recurring service fee.
Framework Maturity
Axon Framework 4.x is production-stable and widely used in enterprise Java. Axon Framework 5 introduces DCB, async-native architecture (Java 21, no ThreadLocals), and full reactive support. As of June 2026, AF5 is in milestone releases, the DCB feature ships with AF5 but is explicitly marked as “not for production” in the Axon Server 2025.1 announcement.
evoq is production-ready today, including the DCB adapter to ReckonDB. If you are evaluating Axon specifically for DCB, verify the production status of AF5 before committing.
Where ReckonDB + evoq Leads
DCB is production-ready
ReckonDB’s DCB has been in production use since the reckon_evoq 2.x line. The Raft-level conditional append means filter check + write are a single consensus log entry. There is no atomicity gap.
Axon’s DCB in Axon Server 2025.1 is explicitly experimental: “not for production use; no data migration support.” Teams evaluating Axon for DCB should wait for the stable AF5 release.
DCB is Raft-atomic
ReckonDB’s AppendIfNoTagMatches is a single Ra log entry: the tag filter
evaluation and the event write happen indivisibly inside the Raft state machine.
Axon Server’s “Dynamic Consistency Validation” uses query-based consistency checks via new gRPC endpoints. The exact atomicity model at the Axon Server consensus level has not been publicly detailed in the 2025.1 announcement.
BEAM-native platform
evoq runs on OTP. Aggregates are GenServers; supervision trees provide fault isolation; hot code upgrades work because Erlang. If your team is already on BEAM, evoq is the native path.
Axon Framework is Java-only. If your team is Go, Python, Rust, or Elixir, you can use the Axon Server gRPC API directly (Axon 2025.0 added multi-language client support), but the framework layer (aggregate lifecycle, projections, sagas) requires Java.
Tamper resistance
HMAC + hash chain per store, configurable, verifiable at read time. Axon Server has no equivalent. For regulated-industry audit log requirements, ReckonDB can provide cryptographic proof of chain integrity.
Apache-2.0 with no clustering fee
ReckonDB + evoq in a 4-node cluster: Apache-2.0, no fee. Axon Server in a 3-node cluster: $40/month minimum.
Where Axon Leads
Framework maturity (AF4)
Axon Framework 4 has been in enterprise production since ~2017, with documented deployments at scale. The saga engine is mature, with compensation support and a large body of Spring Boot examples. If AF5 is not yet stable for your use case, AF4 is the known quantity.
Competing consumers
Axon Server’s event processor segments distribute events across multiple consumer instances. Events within a segment are ordered; segments are dynamically reassigned across the cluster as consumers join and leave. This is production- grade competing consumer behaviour. ReckonDB’s equivalent is in development.
Multi-language client depth
Axon 2025.0 added official clients for Go, .NET, Python, JavaScript, Rust, and Swift, all via gRPC. If your organisation runs many language runtimes, Axon Server is the best-supported option in the dedicated event store space.
Web admin UI and Axon Cloud
Axon Server ships a web admin UI for stream browsing, event replay, subscription
management, and health checks. ReckonDB has the reckon CLI and reckon-lazy (TUI).
Axon Cloud provides managed Axon Server hosting. ReckonDB requires self-hosting.
Java/Spring ecosystem depth
Axon Framework integrates naturally with Spring Boot, Spring Data, and the Java enterprise ecosystem. For organisations standardised on Spring, Axon Framework is the path of least resistance for CQRS. evoq targets the Erlang/Elixir ecosystem and has no Java integration layer.
The DCB Comparison
Both stores have DCB support. The architecture differs:
ReckonDB:
Filter = {and_, [{event_type, <<"seat_reserved_v1">>}, {any_of, [<<"seat:42-A3">>]}]},
{ok, Ctx} = reckon_dcb:read_context(StoreId, Filter),
case reserved(Ctx#ctx.events) of
true -> {error, already_reserved};
false ->
reckon_dcb:append_if_no_match(StoreId, Filter, Ctx#ctx.position, Events)
end
The filter evaluation and write are a single Ra log entry.
Axon Server 2025.1 (from dcb.events specification compliance):
1. Publish events with tags (gRPC)
2. Query events by tag + event type filter
3. Append with consistency validation against the query position
The specification-level operations match. The internal atomicity implementation inside Axon Server is not publicly documented.
Who Should Choose Which
Choose ReckonDB + evoq if:
- You need DCB in production today (Axon’s DCB is experimental)
- Your team is BEAM (Erlang/Elixir)
- Tamper resistance is a compliance requirement
- You want Apache-2.0 with no per-node clustering fee
- You want the store embedded in the BEAM runtime
Choose Axon Server + Axon Framework if:
- Your team is Java/Spring
- Competing consumers are a current requirement (Axon’s segment model is mature)
- You want a managed cloud offering (Axon Cloud)
- You need a web admin UI now
- Multi-language client support beyond Go is a current requirement (AF5 + Axon Server multi-language)
- You need enterprise Java ecosystem integration