Domino Flows enables you to efficiently orchestrate and monitor complex, multi-step computations while ensuring full lineage and reproducibility.
It is built on an open-source framework called Flyte and includes the following key capabilities:
-
Complex orchestration: Orchestrate a collection of composable or independent Domino Jobs as a single process. Each job has explicitly defined parameters, inputs, and outputs that are automatically tracked and versioned.
-
Graph view: Monitor executions using a graph view to easily understand dependencies and troubleshoot the root cause of failures.
-
Timeline view: Easily identify bottlenecks using a visual timeline (Gantt chart) of all the steps and their execution times.
-
Auto recovery: Automatically and efficiently recover from transient errors by resuming from the point of failure.
-
Output caching: Reuse cached outputs when relaunching flows to avoid redundant and costly computations.
-
Track results: Use the integrated Domino UI to track workflows and view results (intermediate and final outputs).
Note
| Domino Flows is currently in public preview. Your Domino Admin can enable Flows in Central Configuration. |
Some key concepts to understand before getting started with Flows, include:
Term | Definition |
---|---|
Task | Tasks are the core building blocks within a flow and are isolated within their own container during an execution. A task maps to a single Domino Job. |
Flow | A flow is a composition of multiple tasks or other flows (called subflows). Flows can be triggered through a single command and are tracked as a single entity. |
Node | A node represents a unit of execution or work within a flow (they show up as individual blocks in the graph views). A node can contain either a single task or a whole flow (called subflows). |
Task inputs | Task inputs are strongly typed parameters that can be defined on individual tasks. Inputs allow tasks to be rerun with different settings through the UI, without the need to modify the code itself. Inputs can be read and used within executions. |
Task outputs | Task outputs are strongly typed parameters that define the results that are produced by a task. Outputs are tracked and can be used as input to another task. |
Flow inputs/outputs | Flow inputs/outputs are similar to the task inputs/outputs but are defined at the flow level. Inputs defined for a flow can be passed into relevant tasks, and outputs from tasks can be returned as the overall output for a flow. |