(execute-graph chain args request-ctx extensions)Execute the full backend_chain according to dependency waves. Returns a task that resolves to the final chain-ctx map.
extensions is the caller-owned map with :cache and :retry-hooks.
Steps that succeed and declare a :compensation config are recorded; if a later critical step fails, the recorded compensations run in reverse order before the failure is re-thrown to the caller.
Execute the full backend_chain according to dependency waves. Returns a task that resolves to the final chain-ctx map. `extensions` is the caller-owned map with :cache and :retry-hooks. Steps that succeed *and* declare a :compensation config are recorded; if a later critical step fails, the recorded compensations run in reverse order before the failure is re-thrown to the caller.
(run-endpoint endpoint args request-ctx extensions)Build and execute the full endpoint pipeline.
Returns a missionary task resolving to: {:data {...} ; the mapped output fields :errors [{...}] ; any step errors (may be empty)}
extensions is the caller-owned config map. Keys (all optional):
:enrichers — ordered seq of context enrichers
:validators — {"key" impl} for :validator {:key ...} refs
:transformers — {"key" impl}
:resolvers — {"key" impl}
:retry-hooks — {"key" impl}
:cache — a CacheStore, or nil
If the endpoint has a top-level :resolver key, it is called instead of the backend_chain. Alternatively, a resolver can be embedded as one step in a backend_chain (via {:id ... :resolver {:key "..."} :input_mapping ...}); it runs like any other step and its :data becomes the step's output. Partial failures are represented in :errors while :data contains whatever fields could be resolved from successful steps.
Build and execute the full endpoint pipeline.
Returns a missionary task resolving to:
{:data {...} ; the mapped output fields
:errors [{...}] ; any step errors (may be empty)}
`extensions` is the caller-owned config map. Keys (all optional):
:enrichers — ordered seq of context enrichers
:validators — {"key" impl} for :validator {:key ...} refs
:transformers — {"key" impl}
:resolvers — {"key" impl}
:retry-hooks — {"key" impl}
:cache — a CacheStore, or nil
If the endpoint has a top-level :resolver key, it is called instead of
the backend_chain. Alternatively, a resolver can be embedded as one step
in a backend_chain (via {:id ... :resolver {:key "..."} :input_mapping
...}); it runs like any other step and its :data becomes the step's
output. Partial failures are represented in :errors while :data contains
whatever fields could be resolved from successful steps.cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |