aion_flow
aion_flow is the typed Gleam SDK for authoring durable Aion
workflows.
Workflow authors write ordinary deterministic Gleam for decisions, loops, and data transformation. Code reaches the outside world only through the SDK primitives exposed from the public modules listed below: activities, signals, queries, timers, child workflows, codecs, durations, errors, and the pure-Gleam testing harness.
The recorded side-effect boundary is structural: activity dispatch goes
through aion/workflow.run and its typed concurrency helpers. Workflow code
must not read wall clocks or ambient entropy; use the deterministic
aion/workflow.now, aion/workflow.random, and timer primitives instead so
replay observes the same values.
Public import paths:
aion/activityfor typed activity definitions and configuration.aion/workflowfor workflow definitions, deterministic primitives, timers, child workflow helpers, and activity dispatch.aion/signalfor typed signal references and signal helpers.aion/queryfor typed query handlers and replies.aion/childfor typed child-workflow handles.aion/errorfor activity and engine-originated error types.aion/codecfor payload codecs and decode errors.aion/durationfor canonical workflow durations.aion/testingfor simulated time, activity mocks, and replay assertions.
The canonical typed example lives in
test/aion_flow_test.gleam as canonical_example_workflow: it defines a
workflow with workflow.define, runs an activity, reads deterministic time,
sleeps, receives a typed signal, spawns and awaits a child workflow, and fans
out homogeneous activities with workflow.all under the pure-Gleam harness.
Types
Marker declaration for the documentation-only package root.
Author-facing APIs live in the documented modules above; this type keeps the root module declaration-only while avoiding an empty-module warning.
pub type PackageRoot {
PackageRoot
}
Constructors
-
PackageRoot