(flowify catalog log-fn args node)Converts the argument into an appropriate flow.
Converts the argument into an appropriate flow. - flow or workflow: pass-through - fn: returns a fn-flow (optionally uses result pipelining via expand-flow) - else: lookup flow in catalog
(load catalog {:workflow/keys [log-fn isolated] :as wf})Returns a loaded workflow by preparing its definition by ensuring that all nodes in the definition can either be converted into flows or loaded workflows compatible with the core load-streams function.
This function expects that the catalog contains all
named references in the definition to be either flows,
loaded workflows or, when the isolated flag is set to true
or the workflow is unloaded it has a definition
with nodes which also follow the contraints.
The steps are:
Notes:
Returns a loaded workflow by preparing its definition by ensuring that all nodes in the definition can either be converted into flows or loaded workflows compatible with the core load-streams function. This function expects that the catalog contains all named references in the definition to be either flows, loaded workflows or, when the isolated flag is set to `true` or the workflow is unloaded it has a definition with nodes which also follow the contraints. The steps are: 1. Flowify all nodes in the definition 2. Flow: return it 3. Workflow: When wf arg is isolated - load it 4. Workflow: Loaded - return it 5. Workflow: Unloaded - load it 6. Else: throw anomaly Notes: - The isolated condition is inherited by all encountered dependent workflows so that the sink/source of the returned workflow has a manifold topology not shared by any other workflow. - The state of the log-fn of the argument workflow is inherited by any dependent workflows loaded
(lookup-node {:flows.runtime/keys [flows workflows] :as catalog} id)Looks up the flow or workflow which has the id. Throws an exception if there is no match.
Looks up the flow or workflow which has the id. Throws an exception if there is no match.
(try-load catalog {:workflow/keys [lazy-load] :as wf})Returns a loaded workflow if it is not marked as lazy/defer.
Returns a loaded workflow if it is not marked as lazy/defer.
(validate-workflow-graph wf-catalog {:workflow/keys [log-fn] :as wf})(validate-workflow-graph wf-catalog wf log-fn graph)Returns the dependency graph of the workflow definition as a seq of ids sorted in topological order.
Validates that if the workflows definition has references that the DAG of its nested dependencies is not cyclic, throwing an exception when a back reference is encountered.
NOTE: This requires that all worklfows in the catalog have definitions that only have references which exists in the catalog. This means it does not attempt to validate circular references that may appear in a workflow embeded in a definition.
Returns the dependency graph of the workflow definition
as a seq of ids sorted in topological order.
Validates that if the workflows definition has references
that the DAG of its nested dependencies is not cyclic,
throwing an exception when a back reference is encountered.
NOTE: This requires that all worklfows in the catalog
have definitions that only have references which
exists in the catalog. This means it does not
attempt to validate circular references that may
appear in a workflow embeded in a definition.(workflow-refs catalog workflow)Returns a seq of the workflow reference ids in the workflow definition or nil if none are present
Returns a seq of the workflow reference ids in the workflow definition or nil if none are present
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 |