Menu
Netflix Tech Blog·October 14, 2026

Netflix Conductor's Architectural Evolution for Scalable Workflow Orchestration

This article details the architectural evolution of Netflix Conductor, a workflow orchestration engine critical for stitching microservices into reliable business processes. It highlights how Netflix re-architected Conductor from the ground up to handle massive growth, addressing scaling challenges by modernizing its data plane, rewriting its evaluation engine, and introducing asynchronous processing. The evolution showcases key decisions in datastore migration, queueing systems, and task management to achieve high throughput and reliability.

Read original on Netflix Tech Blog

Netflix Conductor serves as a robust workflow orchestration engine, enabling the creation of complex, distributed business processes by coordinating numerous microservices. Its internal growth at Netflix, scaling from a billion workflow executions annually to quarterly, necessitated a complete architectural overhaul to address performance bottlenecks and improve reliability.

Architectural Evolution: From 1.0 to 3.0

The initial Conductor (1.0) architecture relied on Dynomite (Redis clustering) with DynoQueues for queueing and Elasticsearch for indexing. This setup encountered significant scaling limitations due to Dynomite's in-memory nature and replication strategy, which wasn't suitable for durable records at high volumes. Additionally, synchronous evaluation and scattered state mutations led to inconsistencies.

Key Changes in Conductor 2.x and 3.0

  1. Cassandra as Primary Datastore: Conductor 2.0 replaced Dynomite with Cassandra for execution data, providing elastic, horizontal scaling and removing prior scaling ceilings.
  2. Timestone for Queueing: DynoQueues were replaced by Timestone, Netflix's purpose-built high-throughput, low-latency priority queuing system. This introduced delayed queuing and a background repair process, crucial for reliability.
  3. Decoupled Indexing: Indexing was moved off the critical path, utilizing Kafka as a buffer to feed an independently scalable indexer writing to Elasticsearch.
  4. Automated Workflow Repair & Multi-cluster Deployment: Conductor 3.0 consolidated these changes, adding automated repair mechanisms and enabling multi-cluster deployments for workload isolation and scaling.

Conductor 4.0: Rebuilding the Evaluation Engine

Even after the data plane modernization, the original evaluation engine became the bottleneck. It loaded entire workflow states into memory, causing high memory pressure and slow evaluations for large workflows (tens of thousands of tasks).

  • Partitioned Task Model: The rewrite separated workflow metadata from task and user data, giving each task its own record. The engine now only loads a lightweight blueprint and specific task data, drastically reducing memory footprint and improving evaluation speed. This scaled workflows from ~2,500 tasks to 30,000+ tasks.
  • Safe Concurrent Updates: To prevent race conditions (e.g., a late 'in-progress' update overwriting a 'completed' status), task state was split into a 'pending' partition and a 'terminal' partition. The application layer reconciles these, with terminal states always winning, ensuring consistency without relying on complex Cassandra Lightweight Transactions (LWTs).
  • Asynchronous Workflow Evaluation: The final bottleneck was synchronous evaluation, which required workflow locks under load, leading to unpredictable tail latencies. Updates now enqueue the workflow onto an exclusive Timestone queue, processed by a central asynchronous evaluator. This eliminates lock contention and significantly reduces tail latency.
💡

System Design Lessons from Conductor's Evolution

The architectural evolution of Netflix Conductor demonstrates a continuous loop of identifying performance bottlenecks, selecting appropriate distributed systems (Cassandra, Timestone, Kafka), and re-architecting core components (evaluation engine, data models) to meet increasing scale and reliability demands in a microservices environment. Key takeaways include the importance of data model optimization, asynchronous processing, and robust queueing for distributed workflow orchestration.

workflow orchestrationmicroservices architecturecassandratimestonekafkadistributed systemsscalabilitynetflix

Comments

Loading comments...