This is a project featuring seamless workflow orchestration with Netflix's Conductor framework with Spring Boot apps registered as task workers that execute the tasks of configured workflows. It also provides full observability of the system and workflows.
flowchart TD
w[Worker]
c[Conductor]
w -->|Registers with| c;
u -->|Runs workflow| c;
c -->|Runs task| w;
p[Prometheus]
g[Grafana]
u[User]
subgraph Conductor Deployment
direction TB
c -->|Publishes metrics| p
p -->|Consumes metrics| g
end
g -->|View Dashboard| u;
- This is a microservice that has the code to execute one or more task types.
- This is a service that is responsible for orchestrating the workflows.
- Registers workers that are capable of running tasks.
- Metrics collector
- Metrics visualization tool
make build
make start-docker
make add-workflow
make start-worker
make exec-workflow
make exec-workflow-faulty
With all services up, access:
Description | URL |
---|---|
Conductor UI | http://localhost:5000 |
Grafana UI | http://localhost:3000 |
Conductor REST API Playground | http://localhost:8080/swagger-ui/index.html |
Conductor Prometheus Metrics Endpoint | http://localhost:8080/actuator/prometheus |
Workflow Definition:
Workbench to run Workflows:
Listing of Workflow Runs:
Listing of Task Runs:
Completed Workflow:
Dashboard:
Contributions are welcome!
The dashboard needs a lot more information and the existing ones might also need some updates. Any help would be much appreciated.