Why We Switched Our Data Orchestration Service

Guillaume Perchais
6 min readintermediate
--
View Original

Overview

This article discusses Spotify's transition from using Luigi and Flo for data orchestration to adopting Flyte. It outlines the challenges faced with the previous tools and details the reasons for the switch, emphasizing the benefits of Flyte's extensibility, scalability, and integration capabilities.

What You'll Learn

1

How to migrate data orchestration workflows from Luigi and Flo to Flyte

2

Why using a managed service for orchestration improves visibility and maintenance

3

How to leverage Flyte's extensibility for custom SDK development

Prerequisites & Requirements

  • Understanding of data orchestration concepts and tools
  • Familiarity with Docker and Kubernetes(optional)

Key Questions Answered

What challenges did Spotify face with Luigi and Flo?
Spotify encountered several challenges with Luigi and Flo, including a maintenance burden due to managing two libraries, a support burden from users not upgrading to the latest versions, and a lack of insights into workflow execution which hindered monitoring and efficiency.
Why did Spotify choose Flyte for data orchestration?
Spotify selected Flyte due to its extensibility, support for multiple languages, and scalability. Flyte's architecture allows for easier integration with Spotify's existing tools and provides a managed service for orchestration, enhancing visibility and reducing maintenance efforts.
What are the main goals for the next-generation orchestration at Spotify?
The primary goals include making upgrades frictionless, enabling platform automation functionality, and improving visibility into workflows. These objectives aim to enhance user experience and operational efficiency across Spotify's data pipelines.
How does Flyte integrate into Spotify's existing ecosystem?
Flyte integrates into Spotify's ecosystem by allowing workflows to be registered in both Flyte Admin and Styx, ensuring smooth execution and visibility of actions performed within workflows. This dual registration facilitates better monitoring and management of data pipelines.

Key Statistics & Figures

Number of batch data pipelines at Spotify
20,000
These pipelines are defined across more than 1,000 repositories and managed by over 300 teams.

Technologies & Tools

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

Orchestration Tool
Luigi
Previously used for defining workflows at Spotify.
Orchestration Tool
Flo
Another tool used for workflow orchestration, particularly for Java users.
Orchestration Service
Flyte
Chosen as the new orchestration solution for its extensibility and support for multiple languages.
Scheduling Tool
Styx
Handles scheduling and execution of workflows at Spotify.
Containerization
Docker
Used to package workflows and tasks for execution.
Cloud Platform
Gke
Google Kubernetes Engine is used for running the Docker images.

Key Actionable Insights

1
Transitioning to a managed orchestration service like Flyte can significantly reduce the maintenance burden on platform teams.
By adopting Flyte, Spotify aims to streamline updates and feature rollouts, allowing data engineers to focus on their core tasks rather than managing library dependencies.
2
Implementing visibility features in orchestration workflows is crucial for effective monitoring and troubleshooting.
The previous black-box nature of workflows hindered insights, but with Flyte, Spotify can gain better visibility into task execution and dependencies, improving overall pipeline reliability.
3
Utilizing a thin client SDK can simplify the development and maintenance of orchestration tools.
Flyte's architecture reduces the complexity associated with maintaining multiple libraries, allowing for easier updates and feature additions across the platform.

Common Pitfalls

1
Failing to manage library dependencies can lead to fragmented versioning and increased support burdens.
When users do not upgrade to the latest versions of orchestration libraries, it complicates the platform team's ability to implement fixes and new features across all repositories.
2
Neglecting to provide visibility into workflow execution can result in inefficiencies and troubleshooting challenges.
Without insights into task execution and dependencies, teams may waste resources on polling for missing dependencies, leading to increased operational costs.

Related Concepts

Data Orchestration
Workflow Management
Containerization With Docker
Kubernetes For Orchestration