How-To Guides

Task-focused guides covering Step types, async webhooks, predicates, retries, memoization, for_each fan-out, Flow design patterns, and the environment variables that configure the engine in production.

Step Types

Pick the simplest step type that fits: sync HTTP for fast services, async HTTP for long-running work with webhook callbacks, script for in-engine transforms, and flow for reusable sub-flows.

Read →

HTTP Steps

Configure HTTP endpoints, methods, timeouts, and URL placeholders. Includes the execution context headers (Argyll-Flow-ID, Argyll-Step-ID, Argyll-Receipt-Token, Argyll-Webhook-URL) and how the engine treats 4xx versus 5xx responses.

Read →

Script Steps

Write inline Lua or Ale scripts that run in the engine itself. Use them for small data transforms, derived fields, and routing logic where spinning up an external service would be overkill.

Read →

Flow Design

Practical patterns for designing Flows: picking goals correctly, fail-fast vs best-effort Step roles, collection deadlines, for_each fan-out, sub-flow composition, and an anti-pattern table for the mistakes you'll otherwise make.

Read →

Async Steps

Use async steps when work outlives a single HTTP request. Covers the webhook URL format, the receipt token idempotency model, and the safe retry pattern for completion callbacks.

Read →

Predicates

Skip Steps based on Flow state with a Lua, Ale, or JSONPath predicate. Includes match predicates for filtering individual upstream values and the dependency pruning that follows a skipped Step.

Read →

Retries

Configure retry behavior per Step with work_config. Covers what triggers a retry (5xx and transport errors), what is permanent (4xx), the three backoff strategies, and the global defaults that apply when fields are omitted.

Read →

Memoization

Mark a Step memoizable: true to cache successful results and skip re-execution on identical inputs. Covers the cache key (step definition plus inputs), in-memory LRU semantics, and when memoization is and isn't safe.

Read →

Work Items

Mark an array input for_each: true and the engine expands it into one work item per element, processed in parallel. Covers Cartesian product over multiple for_each inputs, parallelism control, output aggregation, and partial failure.

Read →

Configuration

Every environment variable that controls the engine, plus single-node and three-node Raft setups, the X-Argyll-Raft-State header for leader-aware load balancing, and an HAProxy config you can copy.

Read →