A more powerful engine and a simpler API for our data-oriented mesh
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.
Backend
Graphql
Used as the primary API for data interactions within Viaduct.
Programming Language
Kotlin
Used for generating types in the Tenant API and implementing business logic.
Orchestration
Kubernetes
Viaduct runs as a horizontally-scaled application on Kubernetes.
Key Actionable Insights
1Adopt 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.
2Utilize 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.
3Plan 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