Skip to content
This repository has been archived by the owner on Jul 23, 2021. It is now read-only.

CareCloud/conductor

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Conductor

Conductor

Conductor is an orchestration engine that runs in the cloud.

Download License Issues NetflixOSS Lifecycle

Quick start

To get started with conductor, after cloning this repository, change dynomite and elastic search properties in the following file:

docker/server/config/config.properties

To look like this:

workflow.dynomite.cluster.hosts= dyno1:8102:us-east-1c

workflow.elasticsearch.url= es:9300

Then start the services using docker:

cd docker
docker-compose up

This will launch UI at http://localhost:5000/.

Note: The server will load a sample kitchensink workflow definition by default.

Add workflow definitions

Clone conductor_metadata and run:

python migration.py --delete

This will add the existing workflow definitions to your local instance.

Start api server

Clone conductor_api and follow the README to get the API up and running.

Builds

Conductor builds are run on Travis CI here.

Branch Build Coverage (coveralls.io) Coverage (codecov.io)
master Build Status Coverage Status codecov
dev Build Status Coverage Status codecov

Documentation & Getting Started

http://netflix.github.io/conductor/

Getting Started guide.

Get Conductor

Binaries are available from Maven Central and jcenter.

Below are the various artifacts published:

Artifact Description
conductor-common Common models used by various conductor modules
conductor-core Core Conductor module
conductor-redis-persistence Persistence using Redis/Dynomite
conductor-es5-persistence Indexing using Elasticsearch 5.X
conductor-jersey Jersey JAX-RS resources for the core services
conductor-ui node.js based UI for Conductor
conductor-contribs Optional contrib package that holds extended workflow tasks and support for SQS
conductor-client Java client for Conductor that includes helpers for running a worker tasks
conductor-server Self contained Jetty server
conductor-test-harness Used for building test harness and an in-memory kitchensink demo

Building

To build the server, use the following dependencies in your classpath:

  • conductor-common
  • conductor-core
  • conductor-jersey
  • conductor-redis-persistence (unless using your own persistence module)
  • conductor-es5-persistence (unless using your own index module)
  • conductor-contribs (optional)

Deploying Jersey JAX-RS resources

Add the following packages to classpath scan:

com.netflix.conductor.server.resources
com.netflix.workflow.contribs.queue

Conductor relies on the guice (4.0+) for the dependency injection. Persistence has a guice module to wire up appropriate interfaces:

com.netflix.conductor.dao.RedisWorkflowModule

Database Requirements

Other Requirements

  • JDK 1.8+
  • Servlet Container

Get Support

Conductor is maintained by Media Workflow Infrastructure team at Netflix. Use github issue tracking for any support request.

Contributions

Whether it is a small doc correction, bug fix or adding new module to support some crazy feature, contributions are highly appreciated. We just ask to follow standard oss guidelines. And to reiterate, please check with us before spending too much time, only to find later that someone else is already working on similar feature.

dev branch is the current working branch, while master branch is current stable branch. Please send your PR's to dev branch, making sure that it builds on your local system successfully. Also, please make sure all the conflicts are resolved.

Feel free to create an issue with a label: question, with any questions or requests for help.

License

Copyright 2018 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.

Troubleshooting

Bind for 0.0.0.0:8080 failed: port is already allocated

If you get an error similar to this, make sure the port is not being used by executing lsof -t -i:8080.

When nothing is running in that port but the error persists, make sure there are no services configured to listen on that port, like nginx.

About

Conductor is a microservices orchestration engine - https://netflix.github.io/conductor/

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 91.8%
  • JavaScript 5.0%
  • Go 1.6%
  • Python 0.9%
  • CSS 0.5%
  • Shell 0.1%
  • Other 0.1%