docs/documentation/advanced/extend.md
Conductor provides a pluggable backend. The current implementation uses Dynomite.
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.
To create system tasks follow the steps below:
com.netflix.conductor.core.execution.tasks.WorkflowSystemTaskTaskMapper interfaceTo provide a notification mechanism upon completion/termination of workflows:
WorkflowStatusListener interfaceProvide the implementation of EventQueueProvider.
E.g. SQS Queue Provider: SQSEventQueueProvider.java