domino

Read the Docs


create workflow

Table of contents


About

Domino is an open source workflow management platform, with:

Creating Workflows in the GUI is as simple as dragging and dropping Pieces to the canvas, and connecting them. The user can also schedule the Workflow to run periodically, at a specific date/time, or trigger it manually. The monitoring page shows the status of each Workflow Piece in real time, including the logs and results of each run.

Pieces are functional units that can be reused in multiple Workflows. Pieces can execute anything that can be written in Python, and can be easily distributed and installed directly from Github repositories to be used in Domino Workflows.

Every Domino Workflow corresponds to an Apache Airflow DAG, and each Piece corresponds to an Airflow task. Domino controls an Airflow instance, which is responsible for executing, scheduling and monitoring the Workflows (DAGs).

You can think of Domino as Airflow with superpowers:


Quick start

The Domino Python package can be installed via pip. We reccommend you install Domino in a separate Python environment.

pip install domino-py

You can then use Domino command line interface to easily run the Domino platform locally (requires Docker compose). Go to a new, empty directory and run the following command:

domino platform run-compose

After all processes started successfully, navigate to localhost:3000 to access the Domino frontend service.

Running the Domino platform locally with Docker compose is useful for development and testing purposes. For production environments, we recommend you install Domino in a Kubernetes cluster:


GUI

The Domino frontend service is a React application that provides the GUI for easily creating, editing and monitoring Workflows. Here are some of its features:

Access authentication Sign up and login to use the Domino platform.
</br> ![signup and login](https://raw.githubusercontent.com/Tauffer-Consulting/domino/main/docs/source/_static/media/1_sign_up.gif)
Create Workspaces Create new Workspaces and add your github access token.
</br> ![create workspace](https://raw.githubusercontent.com/Tauffer-Consulting/domino/main/docs/source/_static/media/2_create_workspace_and_token.gif)
Install Pieces repositories Install bundles of Pieces to your Domino Workspaces direclty from Github repositories, and use them in your Workflows.
</br> ![install pieces](https://raw.githubusercontent.com/Tauffer-Consulting/domino/main/docs/source/_static/media/6_install_pieces.gif)
Create Workflows Create Workflows by dragging and dropping Pieces to the canvas, and connecting them.
</br> ![create workflow](https://raw.githubusercontent.com/Tauffer-Consulting/domino/main/docs/source/_static/media/7_create_workflow.gif)
Edit Pieces Edit Pieces by changing their input. Outputs from upstream Pieces are automatically available as inputs for downstream Pieces. Pieces can pass forward any type of data, from simple strings to heavy files, all automatically handled by Domino shared storage system.
</br> ![edit pieces](https://raw.githubusercontent.com/Tauffer-Consulting/domino/main/docs/source/_static/media/8_edit_pieces.gif)
Schedule Workflows Schedule Workflows to run periodically, at a specific date/time, or trigger them manually.
</br> ![schedule workflows](https://raw.githubusercontent.com/Tauffer-Consulting/domino/main/docs/source/_static/media/9_edit_workflow.gif)
Monitor Workflows Monitor Workflows in real time, including the status of each Piece, the logs and results of each run.
</br> ![monitor workflow](https://raw.githubusercontent.com/Tauffer-Consulting/domino/main/docs/source/_static/media/10_monitor_workflow.gif)


Pieces

Pieces are the secret sauce of Domino, they are functional units that can be distributed and reused in multiple Workflows. Domino Pieces are special because they:

It is very easy to create and share your own Piece:

Our pieces repository template provides the basic structure, example files and automatic actions for a seamless Pieces creation experience.

Read more in the Pieces documentation.


REST

The Backend service is a REST API that controls a running Apache Airflow instance. It is responsible for:

The REST service is written in Python, using the FastAPI framework. Read more about it in the REST documentation.