Airbnb
10 min read

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

Read Full Article

Summary

The article outlines the evolution of Viaduct, a data-oriented service mesh developed by Airbnb, highlighting its transition to an open-source model and the architectural improvements made over five years. Key features include a central schema, hosted business logic, and a re-entrant API that enhances developer experience. The article also details the 'Viaduct Modern' initiative, which aims to simplify the API and improve modularity, thereby addressing previous architectural challenges. The new design emphasizes strong abstraction boundaries between the execution engine and the tenant API, facilitating easier updates and better performance.

Key Learnings

  • 1Viaduct's architecture has evolved to support a central schema that integrates various domains, enhancing data accessibility for developers.
  • 2The transition to a serverless model for hosting business logic allows teams to focus on development rather than operational concerns.
  • 3The introduction of the Tenant API simplifies the developer experience by reducing the complexity of the programming model.
  • 4Strong abstraction boundaries between the execution engine and tenant API are crucial for maintaining flexibility and ease of updates.
  • 5The dual API strategy enables gradual migration, allowing teams to adopt new features without disrupting existing workloads.

Who Should Read This

Senior Software Architects designing scalable GraphQL solutions within microservices architectures

Test Your Knowledge

?

What are the trade-offs of adopting a serverless architecture in the context of Viaduct?

?

How does the re-entrancy model contribute to modularity and maintainability in Viaduct?

?

What challenges did Viaduct face with its original API, and how does the new Tenant API address these issues?

?

In what ways does the architectural integrity of Viaduct impact its scalability and performance?

?

Why is it important to have strong abstraction boundaries in a large codebase like Viaduct?

Topics

Read Full Article at Airbnb