Conductor is a platform created by Netflix to orchestrate workflows that span across microservices.
2.31.8 is the final release of 2.31
branch. As of Feb 2022, 1.x
& 2.x
versions are no longer supported.
The modules contributed by the community are housed at conductor-community. Compatible versions of the community modules are released simultaneously with releases of the main modules.
Discussion Forum Please use the forum for questions and discussing ideas and join the community.
List of Conductor community projects - Backup tool, Cron like workflow starter, Docker containers...
The easiest way to get started is with Docker containers. Please follow the instructions here.
Conductor Server is a Spring Boot project and follows all applicable conventions. See instructions here.
Binaries are available from Netflix OSS Maven repository, or the Maven Central Repository.
Artifact | Description |
---|---|
conductor-common | Common models used by various conductor modules |
conductor-core | Core Conductor module |
conductor-redis-persistence | Persistence and queue using Redis/Dynomite |
conductor-cassandra-persistence | Persistence using Cassandra |
conductor-es6-persistence | Indexing using Elasticsearch 6.X |
conductor-rest | Spring MVC resources for the core services |
conductor-ui | node.js based UI for Conductor |
conductor-client | Java client for Conductor that includes helpers for running worker tasks |
conductor-client-spring | Client starter kit for Spring |
conductor-server | Spring Boot Web Application |
conductor-redis-lock | Workflow execution lock implementation using Redis |
conductor-awss3-storage | External payload storage implementation using AWS S3 |
conductor-awssqs-event-queue | Event queue implementation using AWS SQS |
conductor-http-task | Workflow system task implementation to send make requests |
conductor-json-jq-task | Workflow system task implementation to evaluate JSON using jq |
conductor-grpc | Protobuf models used by the server and client |
conductor-grpc-client | gRPC client to interact with the gRPC server |
conductor-grpc-server | gRPC server Application |
conductor-test-harness | Integration and regression tests |
- The default persistence used is Dynomite
- For queues, we are relying on dyno-queues
- The indexing backend is Elasticsearch (6.x)
- https://github.com/maheshyaddanapudi/conductor/tree/oracle_persistence - With option to use Oracle Database as persistence unit.
- Oracle Persistence / Option to use Oracle Database as persistence unit : version > 12.2 - Tested well with 19C
- Docker Compose example with Oracle Container.
- https://github.com/maheshyaddanapudi/conductor/tree/mongo_persistence - With option to use Mongo Database as persistence unit.
- Mongo Persistence / Option to use Mongo Database as persistence unit.
- Docker Compose example with MongoDB Container.
- https://github.com/maheshyaddanapudi/conductor/tree/oauth2 - With option to use OAuth2.0 Role Based Security for API access.
- Postgres Persistence
- Docker Compose example with Keycloak Container.
OAuth2.0 Role Based Security! - Spring Security with easy configuration to secure the Conductor server APIs.
Docker image published to Docker Hub
-
https://github.com/maheshyaddanapudi/conductor/tree/all - With option to use OAuth2.0 Role Based Security for API access, Oracle / Mongo Persistence, in addition to existing options.
-
Oracle Persistence / Option to use Oracle Database as persistence unit : version > 12.2 - Tested well with 19C
-
Docker Compose example with Oracle Container.
-
Mongo Persistence / Option to use Mongo Database as persistence unit.
-
Docker Compose example with MongoDB Container.
-
Docker Compose example with Keycloak Container using Postgres Persistence.
-
- JDK 11+
- UI requires Node 14 to build. Earlier Node versions may work but is untested.
Conductor is maintained by Media Workflow Infrastructure team at Netflix. Use Github issue tracking for filing issues and Discussion Forum for any other questions, ideas or support requests.
Whether it is a small documentation correction, bug fix or new features, contributions are highly appreciated. We just ask to follow standard oss guidelines. Discussion Forum is a good place to ask questions, discuss new features and explore ideas. Please check with us before spending too much time, only to find later that someone else is already working on a similar feature.
main
branch is the current working branch. Please send your PR's to main
branch, making sure that it builds on your local system successfully. Also, please make sure all the conflicts are resolved.
Copyright 2022 Netflix, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.