Netflix Conductor: A microservices orchestrator

Netflix Technology Blog
9 min readintermediate
--
View Original

Overview

Netflix Conductor is a microservices orchestration engine designed to manage complex workflows in the content platform engineering team. It addresses the challenges of traditional ad-hoc orchestration methods by providing a centralized framework for tracking, managing, and visualizing workflows across multiple microservices.

What You'll Learn

1

How to define workflows using a JSON DSL in Conductor

2

Why centralized orchestration improves visibility in microservices

3

When to use Conductor for managing long-running processes

Prerequisites & Requirements

  • Understanding of microservices architecture
  • Familiarity with REST APIs(optional)

Key Questions Answered

What are the main features of Netflix Conductor?
Netflix Conductor features include a JSON DSL for workflow definition, tracking and management of workflows, the ability to pause and resume processes, a user interface for visualization, and scalability to millions of concurrent workflows. It also supports various transport protocols like HTTP and gRPC.
How does Conductor improve orchestration over traditional methods?
Conductor centralizes orchestration by eliminating the ad-hoc methods of using pub/sub and direct REST calls, which makes it easier to manage complex workflows and provides better visibility into distributed processes. This is crucial as the number of microservices and complexity of workflows increase.
What are the benefits of using a state machine service in Conductor?
The state machine service, known as the Decider service, allows Conductor to manage workflow events effectively by determining the next state based on the workflow blueprint and current state. This enables dynamic scheduling of tasks and updates workflow status based on task completion or failure.
What statistics demonstrate Conductor's effectiveness?
Conductor has orchestrated over 2.6 million process flows at Netflix, ranging from simple linear workflows to complex dynamic workflows that can span multiple days. This showcases its capability to handle extensive orchestration needs.

Key Statistics & Figures

Total process flows orchestrated
2.6 million
This statistic reflects the scale at which Conductor operates within Netflix's content platform engineering.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Orchestration Engine
Conductor
Used for orchestrating microservices workflows.
Database
Dynomite
Serves as a storage engine for Conductor.
Search Engine
Elasticsearch
Used for indexing execution flows.

Key Actionable Insights

1
Implementing Conductor can significantly streamline your microservices orchestration, allowing for better management of complex workflows.
By centralizing orchestration, teams can reduce the complexity of managing multiple microservices and improve visibility into the entire process.
2
Using a JSON DSL for defining workflows enables flexibility and versioning, making it easier to adapt to changing business requirements.
This approach allows teams to quickly modify workflows without extensive code changes, facilitating faster iterations.
3
Leverage the UI provided by Conductor for monitoring and troubleshooting workflows effectively.
The UI allows teams to visualize process flows and track task execution details, which is essential for maintaining operational efficiency.

Common Pitfalls

1
Relying on peer-to-peer choreography can lead to tightly coupled services that are hard to manage and scale.
This approach often results in complex dependencies and makes it difficult to track the status of workflows, which can hinder responsiveness to business changes.
2
Neglecting to use a centralized orchestrator can result in visibility issues across distributed workflows.
Without a central system like Conductor, teams may struggle to understand the state of various processes, leading to inefficiencies and potential errors.

Related Concepts

Microservices Architecture
Workflow Management
Asynchronous Programming