Conductor is a platform originally created at Netflix to orchestrate microservices and events. Conductor OSS is maintained by the team of developers at Orkes.io along with members of the open source community.
- What is Conductor?
- Requirements
- Conductor Roadmap
- How to Contribute
- Additional Resources
- Community & Support
Conductor (or Netflix Conductor) is a microservices orchestration engine for distributed and asynchronous workflows. It empowers developers to create workflows that define interactions between services, databases, and other external systems.
Conductor is designed to enable flexible, resilient, and scalable workflows. It allows you to compose services into complex workflows without coupling them tightly, simplifying orchestration across cloud-native applications and enterprise systems alike.
- Resilience and Error Handling: Conductor enables automatic retries and fallback mechanisms.
- Scalability: Built to scale with complex workflows in high-traffic environments.
- Observability: Provides monitoring and debugging capabilities for workflows.
- Ease of Integration: Seamlessly integrates with microservices, external APIs, and legacy systems.
- Workflow as Code: Define workflows in JSON and manage them with versioning.
- Rich Task Types: Includes task types like HTTP, JSON, Lambda, Sub Workflow, and Event tasks, allowing for flexible workflow definitions.
- Dynamic Workflow Management: Workflows can evolve independently of the underlying services.
- Built-in UI: A customizable UI is available to monitor and manage workflows.
- Flexible Persistence and Queue Options: Use Redis, MySQL, Postgres, and more.
- Install Docker Desktop (Mac, Windows/PC, Linux)
- Install Java (JDK) 17 or newer
- Node 14 for the UI to build
- Earlier versions may work, but are untested
git clone https://github.com/conductor-oss/conductor
cd conductor
docker compose -f docker/docker-compose.yaml up
- The default persistence used is Redis
- The indexing backend is Elasticsearch (7.x)
Backend | Configuration |
---|---|
Redis + ES7 | config-redis.properties |
Postgres | config-postgres.properties |
Postgres + ES7 | config-postgres-es7.properties |
MySQL + ES7 | config-mysql.properties |
In addition to the Docker Compose setup, Netflix Conductor supports several other deployment methods to suit various environments:
- Docker: Outlined above
- Custom Deployment: Build from source and deploy Conductor as a standalone Java application. Configure databases, queues, and environment settings as needed.
Conductor provides several SDKs for interacting with the API and creating custom clients:
- Java SDK: Fully featured for building and executing workflows in Java.
- Python SDK: Python library for creating and managing workflows.
- Go SDK: For integrating Conductor workflows with Go-based services.
- C# (C sharp) SDK:The conductor-csharp repository provides the client SDKs to build task workers in C#
Each SDK is maintained as part of the Conductor project, providing examples and comprehensive API documentation.
- Official Documentation: Conductor documentation contains detailed explanations of workflow concepts, API reference, and guides.
- Conductor Slack: Join the Conductor Slack channel for community discussions and support.
- Orkes Community Discourse: Hosted by Orkes.io on Discourse, you can engage the Conductor & Orkes community, ask questions, and contribute ideas.
See the roadmap for the Conductor
If you would like to participate in the roadmap and development, please reach out.
Conductor is licensed under the Apache 2.0 License © Conductor Open-source