Taming Service-Oriented Archit... Note

Taming Service-Oriented Architecture Using A Data-Oriented Service Mesh

Airbnb developed Viaduct, a data-oriented service mesh, to improve modularity in its microservices-based architecture. Traditional service meshes are procedure-oriented, while Viaduct focuses on data, using a GraphQL schema as its central organizing principle. This schema defines types, queries, and mutations, abstracting service dependencies from consumers. Viaduct allows data consumers to access information from multiple microservices without direct dependencies, simplifying the architecture. The central schema enables easier API and database schema changes, enhancing data agility and reducing coordination efforts. Viaduct integrates serverless functions for derived data, minimizing the number and complexity of microservices. The system, built with graphql-java, offers features like fine-grained field selection, data observability, and intra-request caching. It leverages the GraphQL ecosystem's tooling and powers a significant portion of Airbnb's API traffic. Viaduct addresses challenges related to spaghetti-like dependency graphs prevalent in large Service-Oriented Architectures. The shift towards a data-oriented approach aims to streamline data access and improve overall system maintainability. The architecture started with a clean schema and has grown to include numerous core entities. The solution, already deployed in production, illustrates Airbnb's commitment to evolving its SOA.
CdXz5zHNQW_YzRZpul0zT.jpeg