a9cd7750f4
CI / detect-changes (push) Waiting to run
CI / build (push) Waiting to run
UI v2 CI / E2E (Mocked) (push) Blocked by required conditions
UI v2 Integration CI / E2E (Integration) (push) Waiting to run
CI / unit-test (push) Blocked by required conditions
CI / test-harness (push) Waiting to run
CI / generate-e2e-matrix (push) Waiting to run
CI / e2e (push) Blocked by required conditions
CI / build-ui (push) Waiting to run
Publish docs via GitHub Pages / Deploy docs (push) Waiting to run
Release Drafter / update_release_draft (push) Waiting to run
UI v2 CI / Lint, Format & Test (push) Waiting to run
2.0 KiB
2.0 KiB
description
| description |
|---|
| Extend Conductor with custom persistence backends, queue implementations, and workflow status listeners for this open source workflow orchestration engine. |
Extending Conductor
Backend
Conductor provides a pluggable backend. Supported implementations include Redis, PostgreSQL, MySQL, Cassandra, and SQLite.
There are 4 interfaces that need to be implemented for each backend:
//Store for workflow and task definitions
com.netflix.conductor.dao.MetadataDAO
//Store for workflow executions
com.netflix.conductor.dao.ExecutionDAO
//Index for workflow executions
com.netflix.conductor.dao.IndexDAO
//Queue provider for tasks
com.netflix.conductor.dao.QueueDAO
It is possible to mix and match different implementations for each of these.
For example, SQS for queueing and a relational store for others.
System Tasks
To create system tasks follow the steps below:
- Extend
com.netflix.conductor.core.execution.tasks.WorkflowSystemTask - Instantiate the new class as part of the startup (eager singleton)
- Implement the
TaskMapperinterface
Workflow Status Listener
To provide a notification mechanism upon completion/termination of workflows:
- Implement the
WorkflowStatusListenerinterface - This can be configured to plugin custom notification/eventing upon workflows reaching a terminal state.
Event Handling
Provide the implementation of EventQueueProvider.
E.g. SQS Queue Provider: SQSEventQueueProvider.java