BlogsShopifyMaestro Orchestration Language

Maestro Orchestration Language

Maestro Orchestration Language

1
posts
2022

This feature thread tracks the development and enhancement of Shopify Flow's orchestration capabilities, focusing on the introduction and evolution of the Maestro language and its execution engine. Initial efforts involved decoupling the Flow editor and engine by designing and implementing Maestro, a domain-specific orchestration language tailored for efficient, fault-tolerant workflow execution. A new, horizontally scalable engine was built to execute Maestro orchestrations. A translation layer was created to enable existing Flow workflows to run on the new engine. Subsequently, a new visual experience and editor language were developed, which also translate to Maestro orchestrations. All Flow workflows have since been migrated to use the new editor and engine, ensuring a more flexible, expressive, and independently evolvable system for workflow automation across Shopify.

2022

Maestro: The Orchestration Language Powering Shopify Flow - Shopify

5/13/2022

This post introduces Maestro, a new domain-specific orchestration language designed to decouple the Shopify Flow editor and execution engine. Maestro focuses on coordinating function calls and managing execution state durably through checkpoints, enabling at-least-once execution semantics. It defines types and functions, with primitive expressions binding to host language code. The post details how Maestro types and functions are used to model Flow's triggers, conditions, and actions, and how workflow validation is achieved by composing Maestro orchestrations.