Amazon States Language
Step Functions is the most widely deployed durable-execution runtime, and ASL is the JSON contract under it. If you ever need a state machine to coordinate Lambdas, run a Saga, or fan out parallel work in AWS, you'll write ASL โ and unlike WDK or Temporal it's a declarative DSL, not code, which is both its strength (visualizable, statically inspectable) and its weakness (loops and dynamic control flow are awkward). Worth knowing as the canonical "workflow as JSON" comparison point.
What It Defines
JSON-based DSL for describing AWS Step Functions state machines. A state machine is a graph of states (Task, Choice, Parallel, Map, Wait, Pass, Succeed, Fail) connected by `Next`/`End` transitions. Each state declares input/output transformations via JSONPath, retry/catch policies, and (for Task states) the ARN of the work to invoke โ typically a Lambda function, an AWS service integration, or an arbitrary HTTPS endpoint. Step Functions is the managed runtime; ASL is the open language, documented at states-language.net and validated by tools like statelint and the AWS Toolkit.
Canonical (Normative)
Related References
Cloud provider that publishes the Amazon States Language (ASL) โ a JSON-based DSL for describing AWS Step Functions state machines. ASL is documented openly at states-language.net and supported by third-party runners (e.g. statelint). Step Functions itself is a managed durable-execution service: it executes ASL state machines with built-in retries, timeouts, parallel branches, and integrations with the rest of AWS.
Related Specs
WDK is the durable-execution model arriving inside the JavaScript ecosystem proper: instead of writing a state machine, you write `async` code with two extra string directives and you get crash-safe, resumable, retry-aware, observable workflows. If you're building AI agents, multi-step background jobs, human-in-the-loop flows, or anything that previously needed BullMQ + a state machine + careful idempotency, WDK collapses that into a single mental model. Even if you don't pick WDK specifically, the directives + replay model are the durable-execution pattern Temporal pioneered and Cloudflare/Restate/DBOS now ship โ knowing one teaches you the rest.
Temporal is the prior art every durable-execution framework is measured against. If you're picking a workflow runtime, evaluating WDK, or reading a paper on durable execution, the Temporal model โ workflows + activities + signals + timers + event history โ is the vocabulary. Even if you choose WDK or Step Functions for a specific stack, understanding Temporal makes their tradeoffs legible (sandbox restrictions vs full Node, hosted runtime vs self-host, JSON DSL vs code).
If your stack is on Cloudflare Workers, Cloudflare Workflows is the native durable-execution option โ no extra infra, billed alongside Workers, and able to call other Workers/D1/R2/Queues directly. Useful comparison point for WDK: same model, different runtime constraints. Worth knowing both to pick the right tool and to recognize the durable-execution pattern as it spreads across edge platforms.
JSON is the lingua franca of web APIs. RFC 8259 is short and worth reading once โ it clarifies edge cases around numbers, encoding, and trailing commas.
JSON Schema is the standard way to document and validate API request/response shapes. OpenAPI 3.1 fully adopts it. Know it if you design APIs.