Viaduct: A New Alternative to Monoliths


Raymie Stata


Daniel Jackson
Abstract: The trajectory of Airbnb's technical stack followed a common pattern: early, very agile days on a (Rails-based) monolith; increasingly frustrating days as build, test, and deployment issues spiraled with the growth of the monolith and the team; a period of relief as we cleaved more and more pieces of the monolith into independent services; which eventually lead to new challenges fighting software entropy across a network of hundreds of services.

While Airbnb today runs primarily on a standard service-oriented architecture, over the last three years we've developed a new way to organize our software in a system called Viaduct. In Viaduct, rather than publish a set of remote procedural entry points, teams contribute schema fragments to an Airbnb-wide "central schema." Viaduct "modules" -- our equivalent of microservices -- interact with each other via GraphQL operations issued against this central schema. In keeping with the overall philosophy of GraphQL, teams are encouraged to extend the existing central schema, rather than build unconnected schema silos, and Viaduct provides modular mechanisms to allow them to do so.

In this talk we will introduce Viaduct using a small example, discuss the benefits and challenges we've faced with Viaduct at Airbnb, and share our vision for the future of Viaduct. We will also compare and contrast Viaduct, SOA, and monoliths as alternative architectures for large-scale cloud software systems.

Bio: Raymie Stata is a software engineer with over thirty years of experience in areas including formal methods, programming languages, information retrieval, and large-scale software engineering. He received his PhD from MIT in 1996; his thesis explored the formal semantics of object-oriented programs. After graduating he spent six years at DEC's Systems Research Center, where he continued to work on formal methods and eventually transitioned into Web search. He spent seven years at Yahoo! working on search and advertising systems, eventually becoming Yahoo!'s CTO. Most recently he's spent five years at Airbnb helping to replatform their software stack. Stata is also the founder of two software companies, selling a desktop-search company to Yahoo! in 2001, and a "Big Data"-as-a-Service company to SAP in 2016.