Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/conductor-oss/conductor
Conductor is an event driven orchestration platform
https://github.com/conductor-oss/conductor
distributed-systems durable-execution grpc java javascript microservice-orchestration orchestration-engine orchestrator reactjs spring-boot workflow-automation workflow-engine workflow-management workflows
Last synced: 4 days ago
JSON representation
Conductor is an event driven orchestration platform
- Host: GitHub
- URL: https://github.com/conductor-oss/conductor
- Owner: conductor-oss
- License: apache-2.0
- Created: 2023-12-08T06:06:09.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-08T20:30:15.000Z (5 days ago)
- Last Synced: 2024-12-08T20:31:09.085Z (5 days ago)
- Topics: distributed-systems, durable-execution, grpc, java, javascript, microservice-orchestration, orchestration-engine, orchestrator, reactjs, spring-boot, workflow-automation, workflow-engine, workflow-management, workflows
- Language: Java
- Homepage: https://conductor-oss.org
- Size: 32.9 MB
- Stars: 18,119
- Watchers: 39
- Forks: 499
- Open Issues: 83
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
- Roadmap: ROADMAP.md
Awesome Lists containing this project
- awesome-workflow-engines - Conductor - oss/conductor.svg)](https://github.com/conductor-oss/conductor) - Conductor is a microservices orchestration platform that enables developers to build scalable, durable application flows. Conductor workflows are language and framework-agnostic. The Conductor is maintained by Orkes and a team of open-source contributors. (Full fledged product)
- StarryDivineSky - conductor-oss/conductor - 2.0 许可证。自由部署、修改和回馈。通过完全抽象的后端,您可以选择自己的数据库持久层和排队服务。企业就绪的、基于Java Spring的平台,已经在Netflix和其他地方的生产系统中进行了实战测试。强大的流控制结构,包括决策、动态分叉连接和子工作流。支持变量和模板。多种语言的客户端库允许使用 Java、Node JS、Python 和 C# 实现 worker。适用于编排器和工作线程的分布式架构,可从单个工作流扩展到数百万个并发流程。Conductor 允许您使用简单而精细的任务来构建复杂的应用程序,这些任务不需要了解或跟踪应用程序执行流的状态。Conductor 跟踪状态,按正确的顺序(按顺序或并行,由您定义)调用任务,根据需要重试调用,优雅地处理故障场景,并输出最终结果。利用 Conductor 中的工作流,开发人员能够真正专注于他们的核心任务 - 使用他们选择的语言构建他们的应用程序代码。Conductor 承担了与确保其工作流程的高可靠性、事务一致性和长期耐用性相关的繁重工作。简单地说,无论您的应用程序组件位于何处,也无论它们使用哪种语言编写,您都可以在 Conductor 中构建一个工作流,以可靠且可扩展的方式编排它们的执行。 (其他__大数据 / 网络服务_其他)
- grpc-protos - conductor-oss/conductor - oss/conductor) | workflow (Repositories)
README
![Conductor OSS Logo](https://assets.conductor-oss.org/logo.png "Conductor OSS")
Scalable Workflow Orchestration[![Github release](https://img.shields.io/github/v/release/conductor-oss/conductor.svg)](https://GitHub.com/Netflix/conductor-oss/releases)
[![License](https://img.shields.io/github/license/conductor-oss/conductor.svg)](http://www.apache.org/licenses/LICENSE-2.0)
[![Conductor Slack](https://img.shields.io/badge/Slack-Join%20the%20Community-blueviolet?logo=slack)](https://join.slack.com/t/orkes-conductor/shared_invite/zt-2vdbx239s-Eacdyqya9giNLHfrCavfaA)
[![Community Forum](https://img.shields.io/badge/Discourse-Join%20the%20Community-blue?logo=discourse&logoColor=white)](https://community.orkes.io)
[![Conductor OSS](https://img.shields.io/badge/Conductor%20OSS-Visit%20Site-blue)](https://conductor-oss.org)
[![GitHub stars](https://img.shields.io/github/stars/conductor-oss/conductor?style=social)](https://github.com/conductor-oss/conductor/stargazers)Conductor is a platform _originally_ created at **Netflix** to orchestrate microservices and events. [Conductor OSS](https://conductor-oss.org) is maintained by the team of developers at [Orkes.io](https://orkes.io/) along with members of the open source community.
[![conductor_oss_getting_started](https://github.com/user-attachments/assets/6153aa58-8ad1-4ec5-93d1-38ba1b83e3f4)](https://youtu.be/4azDdDlx27M)
- - -
# Table of Contents
1. [What is Conductor?](#what-is-conductor)
* [Key benefits](#key-benefits)
* [Features](#features)
2. [Getting Started](#getting-started)
* [Requirements](#requirements)
* [Quick Start](#quick-start-guide)
* [Create your first workflow](#create-your-first-workflow)
3. [Documentation](#documentation)
4. [Database Specifications](#database-specifications)
5. [Deployment Options](#deployment-options)
6. [Conductor Roadmap](#conductor-oss-roadmap)
7. [How to Contribute](#contributors)
8. [Additional Resources](#resources)
9. [Community & Support](#slack-community)# What is Conductor?
Conductor (or [Netflix Conductor](https://netflixtechblog.com/netflix-conductor-a-microservices-orchestrator-2e8d4771bf40)) 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.
## Key benefits
* **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.## Features
* **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.
- - -
# Getting Started### Requirements
* Install Docker Desktop ([Mac](https://docs.docker.com/desktop/setup/install/mac-install/), [Windows/PC](https://docs.docker.com/desktop/setup/install/windows-install/), [Linux](https://docs.docker.com/desktop/setup/install/linux/))
* Install Java (JDK) 17 or newer
* Node 14 for the UI to build
* _Earlier versions may work, but are untested_
## Quick Start Guide
#### Clone the repo
```shell
git clone https://github.com/conductor-oss/conductor
```#### Change to new Conductor directory
```shell
cd conductor
```#### Start with Docker Compose (_recommended for local deployment_)
```shell
docker compose -f docker/docker-compose.yaml up
```#### Create your first workflow
##### To create a workflow, navigate to the UI:
* http://localhost:8127##### Or use the REST API with your preferred HTTP client
* http://localhost:8080# Documentation
Check-out the [Conductor OSS docs](https://github.com/conductor-oss/conductor/tree/main/docs) for additional details
- - -
# Database Specifications
* The default persistence used is Redis
* The indexing backend is [Elasticsearch](https://www.elastic.co/) (7.x)### Configuration for various database backends
| Backend | Configuration |
|----------------|---------------------------------------------------------------------------------------|
| Redis + ES7 | [config-redis.properties](docker/server/config/config-redis.properties) |
| Postgres | [config-postgres.properties](docker/server/config/config-postgres.properties) |
| Postgres + ES7 | [config-postgres-es7.properties](docker/server/config/config-postgres-es7.properties) |
| MySQL + ES7 | [config-mysql.properties](docker/server/config/config-mysql.properties) |# Deployment Options
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.## Available SDKs
Conductor provides several SDKs for interacting with the API and creating custom clients:* [**Java SDK:**](https://github.com/conductor-sdk/conductor-javascript) Fully featured for building and executing workflows in Java.
* [**Python SDK:**](https://github.com/conductor-sdk/conductor-python) Python library for creating and managing workflows.
* [**Go SDK:**](https://github.com/conductor-sdk/conductor-go) For integrating Conductor workflows with Go-based services.
* [**C# (C sharp) SDK:**](https://github.com/conductor-sdk/conductor-csharp)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.
# Conductor OSS Roadmap
[See the roadmap for the Conductor](ROADMAP.md)
If you would like to participate in the roadmap and development, [please reach out](https://forms.gle/P2i1xHrxPQLrjzTB7).# Documentation and Community
* **Official Documentation:** [Conductor documentation](https://docs.conductor-oss.org/index.html) contains detailed explanations of workflow concepts, API reference, and guides.
* **Conductor Slack:** [Join the Conductor Slack](https://join.slack.com/t/orkes-conductor/shared_invite/zt-2vdbx239s-Eacdyqya9giNLHfrCavfaA) channel for community discussions and support.
* **Orkes Community Discourse:** [Hosted by Orkes.io](https://community.orkes.io) on Discourse, you can engage the Conductor & Orkes community, ask questions, and contribute ideas.
- - -
# License
Conductor is licensed under the Apache 2.0 License © [Conductor Open-source](https://conductor-oss.org/)
- - -
# ContributingWe welcome contributions from everyone!
- **Report Issues:** Found a bug or have a feature request? Open an [issue on GitHub](https://github.com/conductor-oss/conductor/issues).
- **Contribute Code:** Check out our [Contribution Guide](https://github.com/conductor-oss/conductor/blob/main/CONTRIBUTING.md) for initial guidelines, and explore our [good first issues](https://github.com/conductor-oss/conductor/labels/good%20first%20issue) for beginner-friendly tasks to tackle first.
- **Build a Conductor SDK:** Need an SDK not included with Conductor? Build your own using the [Swagger API](http://localhost:8080) included with your local deployment.
- **Contribute to our Docs:** Contribute edits or updates to keep our [documentation](https://github.com/conductor-oss/conductor/tree/main/docs) in great shape for the community.## Contributors