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 BlogNetflix 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.
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.
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).
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.