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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.