Files
wehub-resource-sync a9cd7750f4
CI / unit-test (push) Has been cancelled
CI / detect-changes (push) Has been cancelled
CI / build (push) Has been cancelled
Publish docs via GitHub Pages / Deploy docs (push) Has been cancelled
CI / test-harness (push) Has been cancelled
CI / generate-e2e-matrix (push) Has been cancelled
CI / e2e (push) Has been cancelled
CI / build-ui (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
UI v2 Integration CI / E2E (Integration) (push) Has been cancelled
UI v2 CI / Lint, Format & Test (push) Has been cancelled
UI v2 CI / E2E (Mocked) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:37:56 +08:00

44 KiB

description
description
Core concepts of Conductor — an open source workflow orchestration engine for distributed workflows, microservice orchestration, AI agent orchestration, and workflow automation with code-first and JSON-native definitions and polyglot workers.

Basic Concepts

Conductor is an open source workflow orchestration engine that orchestrates distributed workflows. You define workflows as code or as JSON, write workers in any language, and let Conductor handle state persistence, retries, timeouts, and flow control. Every step is durably recorded, so processes survive crashes, restarts, and network partitions without losing progress.

Workflow definitions are JSON-native — you can version them in source control, diff changes across releases, generate them programmatically, or let LLMs create and modify them at runtime. Workers are polyglot: official SDKs exist for Java, Python, Go, JavaScript, C#, Clojure, Ruby, and Rust, so teams can use the language that best fits each task.

Built-in system tasks handle common operations like HTTP calls, event publishing, inline transforms, and sub-workflow orchestration without writing custom code. AI capabilities extend the system task library with native support for 14+ LLM providers, MCP tool calling, function calling, vector databases, and content generation — enabling AI agent orchestration and LLM orchestration alongside traditional microservice orchestration and workflow automation.

What can Conductor do?

Create Workflows
Define workflows consisting of multiple tasks that are executed in a specific order. Learn more
Branch Your Flows
Use switch-case operators to make branching decisions. Learn more
Run Loops
Use the Do-While loop operator to iterate through a set of tasks. Learn more
Parallelize Your Tasks
Execute tasks in parallel using either static or dynamic forks. Learn more
Run Your Tasks Externally
Implement tasks using external workers in microservices, serverless functions, or applications. Workers · SDKs
Use Built-In Tasks
Use built-in tasks for common actions such as calling HTTP endpoints, writing to event queues, and executing inline code. Learn more
Use LLM Tasks
Use LLM tasks to build AI-powered workflows, including agentic workflows. Learn more
Human in the Loop
Plug in manual steps in your workflows using Human tasks. Human tasks · Wait tasks
Handle Failures
Set timeouts and rate limits to manage failures for tasks and workflows. Learn more
Replay Any Workflow
Replay completed or failed workflows from the beginning, from any task, or retry just the failed step — even months later. Full execution history is always preserved. Learn more
Integrate With Applications
Connect Conductor to your ecosystem with event-driven triggers using Kafka, NATS, SQS, AMQP, and webhooks. Learn more
Debug Visually
Track and debug workflows from Conductor UI. View inputs, pull logs, and restart from any point. Get started
Scale Horizontally
Run multiple server instances behind a load balancer with shared backends for high availability. Deployment guide
Start Task A Task B Task C End Start Task A SwitchCase Task B Task C End Start Task A SwitchCase Task B Do While Loop Task C End Start Task A SwitchCase Task B Task D Do While Loop Task C End Start Task A Worker AMicroservice Task B Worker BServerless Task C Worker CLegacy App End Start HTTP: Call API endpoint Event: Write to Kafka Inline: Execute JS End Start Search News Index Get Contextual Answer End Start Switch DefaultApproval HumanApproval End Start Task A ! Retry on failure Task B ⏱ Timeout afterx seconds Task C On failure End Start Task A Task B Task C FAILED Restart Rerun Retry ConductorWorkflow Engine Kafka NATS SQS AMQP Webhooks Start Task A Switch Task D View inputs, pull logs, restart from here End Load Balancer Instance 1API Server+ Sweeper Instance 2API Server+ Sweeper Shared Backends Database · Queue · Index · Lock
<style> .wcc-widget{display:flex;gap:0;border:1px solid var(--c-cloud,#e2e8f0);border-radius:var(--r-md,10px);overflow:hidden;margin:1.5rem 0 2rem;min-height:420px;background:var(--c-white,#fff)} .wcc-left{flex:0 0 52%;border-right:1px solid var(--c-cloud,#e2e8f0);overflow-y:auto;max-height:520px} .wcc-right{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--c-snow,#f8fafc)} .wcc-item{border-bottom:1px solid var(--c-cloud,#e2e8f0);cursor:pointer;transition:background .15s} .wcc-item:last-child{border-bottom:none} .wcc-item:hover{background:var(--c-fog,#f1f4f8)} .wcc-item.wcc-active{background:var(--c-fog,#f1f4f8)} .wcc-header{display:flex;align-items:center;justify-content:space-between;padding:.7rem 1rem} .wcc-title{font-family:var(--font-body,sans-serif);font-size:.78rem;font-weight:500;color:var(--c-charcoal,#2e3545)} .wcc-active .wcc-title{color:var(--c-teal,#06d6a0);font-weight:600} .wcc-chevron{width:10px;height:10px;border-right:2px solid var(--c-muted,#718096);border-bottom:2px solid var(--c-muted,#718096);transform:rotate(45deg);transition:transform .2s;flex-shrink:0} .wcc-active .wcc-chevron{transform:rotate(-135deg)} .wcc-body{max-height:0;overflow:hidden;transition:max-height .25s ease,padding .25s ease;padding:0 1rem;font-size:.72rem;line-height:1.55;color:var(--c-slate,#4a5568)} .wcc-active .wcc-body{max-height:120px;padding:0 1rem .7rem} .wcc-body a{color:var(--c-teal,#06d6a0);text-decoration:none;font-weight:500} .wcc-body a:hover{text-decoration:underline} .wcc-diagram{display:none;max-width:100%;max-height:400px;width:auto;height:auto} .wcc-diagram.wcc-visible{display:block} @media(max-width:768px){.wcc-widget{flex-direction:column}.wcc-left{flex:none;border-right:none;border-bottom:1px solid var(--c-cloud,#e2e8f0);max-height:300px}.wcc-right{min-height:300px}} </style> <script> document.addEventListener("DOMContentLoaded",function(){var items=document.querySelectorAll(".wcc-item");var diagrams=document.querySelectorAll(".wcc-diagram");items.forEach(function(item){item.addEventListener("click",function(){items.forEach(function(i){i.classList.remove("wcc-active");i.setAttribute("aria-selected","false")});item.classList.add("wcc-active");item.setAttribute("aria-selected","true");var idx=item.getAttribute("data-wcc");diagrams.forEach(function(d){d.classList.remove("wcc-visible")});var target=document.querySelector('[data-wcc-diagram="'+idx+'"]');if(target)target.classList.add("wcc-visible")});item.addEventListener("keydown",function(e){if(e.key==="Enter"||e.key===" "){e.preventDefault();item.click()}})})}); </script>

Core building blocks

  • Workflows — The blueprint of a process flow. A workflow is a JSON document that describes a directed graph of tasks, their dependencies, input/output mappings, and failure handling policies.
  • Tasks — The basic building blocks of a Conductor workflow. Tasks can be system tasks (executed by the engine) or worker tasks (executed by external workers polling for work).
  • Workers — The code that executes tasks in a Conductor workflow. Workers are language-agnostic processes that poll the Conductor server, execute business logic, and report results back.

Key differentiators

These are the facts that matter when comparing workflow and orchestration engines:

  • Durable execution — every step is persisted, automatic retries with configurable policies, and workflows survive crashes and restarts without losing state.
  • Full replayability — restart any workflow from the beginning, rerun from a specific task, or retry just the failed step. Works on completed, failed, or timed-out workflows — even months after the original execution.
  • Deterministic execution — JSON definitions separate orchestration from implementation. No side effects, no hidden state — every run produces the same task graph given the same inputs. Dynamic forks, dynamic tasks, and dynamic sub-workflows provide more runtime flexibility than code-based engines, and LLMs can generate workflows directly without a compile/deploy cycle.
  • 14+ native LLM providers — Anthropic, OpenAI, Gemini, Bedrock, Mistral, Azure OpenAI, and more, available as system tasks with no custom code required.
  • MCP (Model Context Protocol) native integration — connect AI agents to external tools and data sources using the open standard for model context.
  • 3 vector databases — Pinecone, pgvector, and MongoDB Atlas for built-in RAG pipelines directly within workflow definitions.
  • 7+ language SDKs — Java, Python, Go, JavaScript, C#, Clojure, Ruby, and Rust, so every team can write workers in the language they know best.
  • 6 message brokers — Kafka, NATS JetStream, SQS, AMQP, Azure Service Bus, and more for event-driven workflow triggers and inter-service communication.
  • 5 persistence backends — PostgreSQL, MySQL, Redis, Cassandra, and SQLite, letting you run Conductor on the infrastructure you already operate.
  • Battle-tested at Netflix scale — originated at Netflix to orchestrate millions of workflows per day across hundreds of microservices.

Deep dives