Viaduct, Five Years On: Modernizing the Data-Oriented Service Mesh

A more powerful engine and a simpler API for our data-oriented mesh

Adam Miskiewicz
10 min readintermediate
--
View Original

Overview

The article discusses the evolution and modernization of Viaduct, Airbnb's data-oriented service mesh, highlighting its transition to open-source software. Key points include its growth in usage, architectural changes, and the introduction of a simplified API to enhance developer experience.

What You'll Learn

1

How to utilize the new Tenant API for improved developer experience

2

Why modularity is crucial for maintaining large codebases

3

How to migrate existing workloads to Viaduct Modern gradually

Key Questions Answered

What are the main architectural changes in Viaduct Modern?
Viaduct Modern introduces a strong separation between the engine and the developer-facing Tenant API, allowing for independent evolution of both. This change enhances performance and reliability while simplifying the developer experience through a unified API structure.
How has Viaduct's usage changed over the past five years?
Since its inception, traffic through Viaduct has increased by a factor of eight, the number of teams using it has doubled to over 130, and the codebase has tripled to over 1.5 million lines, all while maintaining operational efficiency.
What is the significance of the central schema in Viaduct?
The central schema serves as a single, integrated graph connecting all domains within Airbnb, facilitating over 75% of internal requests. This centralized approach enhances data accessibility and developer collaboration across teams.
What improvements have been made to observability in Viaduct?
The new architecture of Viaduct Modern establishes a clear boundary between tenant code and framework code, which enhances ownership clarity and attribution accuracy in observability, addressing issues present in the previous system.

Key Statistics & Figures

Traffic growth
8x
Traffic through Viaduct has increased by a factor of eight since its launch.
Number of teams using Viaduct
130+
The number of teams hosting code in Viaduct has doubled to over 130.
Codebase size
1.5M lines
The codebase hosted by Viaduct has tripled to over 1.5 million lines of code.

Technologies & Tools

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

Key Actionable Insights

1
Adopt the new Tenant API to streamline your development processes.
The simplified API reduces complexity and enhances the developer experience, making it easier for teams to implement and maintain their business logic within Viaduct.
2
Utilize the modularity features of Viaduct to maintain clean code boundaries.
By enforcing strong abstraction boundaries, teams can avoid direct dependencies, leading to a more maintainable and scalable codebase.
3
Plan for gradual migration to Viaduct Modern to minimize disruption.
The side-by-side availability of the Classic and Modern APIs allows teams to transition at their own pace while still benefiting from performance improvements.

Common Pitfalls

1
Failing to maintain clear boundaries between modules can lead to a tangled codebase.
Without strong abstraction, teams may inadvertently create dependencies that complicate maintenance and scalability.
2
Rushing the migration process can disrupt existing workflows.
A gradual migration strategy is essential to ensure that teams can adapt to the new system without losing productivity.

Related Concepts

Graphql Apis
Microservices Architecture
Service Mesh Patterns