Skip to content

Release 8.0.0

Latest

Choose a tag to compare

@github-actions github-actions released this 09 May 15:37
· 6 commits to main since this release
551dfbf

AxonFlow Java SDK v8.0.0

Installation

Maven:

<dependency>
    <groupId>com.getaxonflow</groupId>
    <artifactId>axonflow-sdk</artifactId>
    <version>8.0.0</version>
</dependency>

Gradle:

implementation 'com.getaxonflow:axonflow-sdk:8.0.0'

Major release. The headline feature is the new decision-history client
API: listDecisions for paging through recorded decisions, plus a
runnable example showing the full record → list → explain audit flow.
Bundled into a major because the v8 line also tightens the telemetry
contract — see Removed at the bottom of this entry for that.

Added

  • listDecisions(ListDecisionsOptions opts) client method. Pages
    over recorded decision history from the orchestrator, mirroring GET /api/v1/decisions. Companion to the v7.4.0 getDecisionExplain
    method — callers can now both list and drill in. See
    examples/list-decisions/.
  • examples/explain-decision/ end-to-end runnable example covering
    the full decision audit flow: record → list → explain.

Migration guide (v7 → v8)

  • AxonFlowConfig.Builder.telemetry(Boolean) removed. Code that
    called .telemetry(true) or .telemetry(false) on the builder will
    fail to compile. Migration: remove the call from your builder chain.
    If you were using it to disable telemetry, set
    AXONFLOW_TELEMETRY=off in the environment instead — that's the
    sole opt-out lever as of v8. If you were using it to force-enable,
    the default is now ON for every mode so the override is no longer
    needed.
  • AxonFlowConfig.getTelemetry() removed. Code reading the
    override field will fail to compile. Same migration: drop the call
    site; AXONFLOW_TELEMETRY=off is the only telemetry knob.
  • TelemetryReporter.isEnabled and TelemetryReporter.sendPing
    signatures simplified.
    Both methods previously took the
    (mode, configOverride, hasCredentials, ...) parameter shape from
    the v7 mode-and-override gate. v8 collapses to a single env-var
    signal: isEnabled(String axonflowTelemetry) and
    sendPing(String mode, String sdkEndpoint, boolean debug, ...).
    Application code does not call these directly; only test harnesses
    that exercise the testability surface need to update.

Telemetry

  • AXONFLOW_TELEMETRY=off is the sole opt-out. AxonFlowConfig.Builder.telemetry(Boolean) + AxonFlowConfig.getTelemetry() removed; sandbox-mode clients (constructed via Mode.SANDBOX) now fire on the same 7-day heartbeat schedule as production (was suppressed pre-v8), tagged stream="sandbox" so dev pings stay distinguishable.
  • Heartbeat payload v1 schema additions on the wire: new telemetry_type and deployment_mode fields, new DeploymentMode constants class on the SDK side. Existing receivers continue working unchanged — strictly additive. EndpointType.COMMUNITY_SAAS is removed (now lives on deployment_mode instead).