Airbnb's Viaduct 1.0 is a data-oriented service mesh built on GraphQL, designed to enable decentralized development of a central schema. It provides a single interface for accessing data across an organization, allowing domain teams to contribute schema and resolvers via multi-tenant modules without managing separate GraphQL servers. This approach balances schema coherence with rapid evolution, offering an alternative and complementary solution to traditional GraphQL Federation.
Read original on Airbnb EngineeringViaduct is Airbnb's solution to managing complex data access in a large organization using GraphQL. It functions as a "data-oriented service mesh," providing a unified GraphQL interface that abstracts away the underlying data sources and service implementations. This enables product engineers to efficiently access data and service owners to decouple API surface from implementation details.
Organizations adopting GraphQL often face the dilemma of maintaining a single, consistent schema while allowing multiple teams to rapidly contribute and evolve their domain-specific data. A central schema offers API discoverability, cross-domain queries, and consistent policy enforcement. However, a central team cannot realistically own all schema evolution. The core problem Viaduct solves is enabling decentralized development of a central schema.
Key Architectural Principle
Viaduct prioritizes a multi-tenant runtime where independent modules, each owned by a different team, define and implement portions of the shared GraphQL schema. This means teams focus on domain logic without managing GraphQL infrastructure.
Both Viaduct and GraphQL Federation aim to solve the decentralized schema development problem, but they take different architectural approaches:
| Feature | GraphQL Federation | Viaduct |
|---|
Viaduct is not an alternative but a complement to Federation. In large organizations, Viaduct instances can host multiple related tenant modules, and these instances can then participate as subgraphs within a broader federated architecture, reducing the number of individual subgraph servers to manage.
The article highlights several operational and developer experience benefits enabled by Viaduct: teams can easily monitor and debug their own code using built-in ownership tags, automatic alerts/dashboards, and cost-aware tracing. Furthermore, the architecture supports sharding solutions for improved operational abilities and evolving towards greater isolation without fragmenting the API surface. Airbnb also leverages LLMs and existing GraphQL infrastructure to generate realistic, type-safe mock data for prototyping and testing.