How-To Guides

Task-focused guides covering Step types, async webhooks, predicates (condition scripts), retries and backoff (retry delays), memoization (cached results), for_each fan-out, Flow design patterns, and production configuration.

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, required and optional failure behavior, collection deadlines, for_each fan-out, sub-flow composition, and common design mistakes.

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 (condition script). Includes match predicates for filtering individual upstream values and dependency pruning after 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 retry delay 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 performs fan-out: it expands the input into one work item per element, processed in parallel. Covers combinations of multiple for_each inputs, fan-in of results, parallelism control, 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 →