Viaduct

A modern multi-tenant GraphQL server

Viaduct is a multi-tenant GraphQL server that provides a unified interface for accessing and interacting with any data source. It can be used by services as a way to access data efficiently and safely.

Viaduct provides you with one global schema and query system. Regardless of the engineering ownership or backing service, data access and mutations should follow a reliable and consistent pattern. The code which hydrates such queries should be maintained by the team which owns the data, to prevent the need to implement such logic by every team querying it.

The Viaduct engine is in production, at scale, at Airbnb where it has proven reliable. The developer API of Viaduct is under active development. In our roadmap we indicate which parts of the API are more or less subject to future change. This is a good time to join the project and influence the direction that this API takes!

Get involved: GitHub Discussions · Contributor Discord · Community page

Why Viaduct?

What you get when many teams contribute to one GraphQL server

One global schema

Independent teams contribute schema and resolvers ("tenant modules") that compose into a single GraphQL surface clients can target — without forcing teams to share a codebase.

Owners write the resolvers

The team that owns the data writes the resolver that fetches it. Other teams query through the schema instead of reimplementing access logic, which keeps domain knowledge where it belongs.

Performance by construction

Batching, deduplication, and per-field dependency tracking are built into the engine, so the natural way to write a resolver is also the efficient way — N+1 patterns are hard to introduce.

Type-safe identity

Every cross-entity reference flows through a typed Global ID. References stay stable across storage changes, and resolvers consume them through generated, type-safe APIs instead of raw strings.

Core Values

The principles that guide Viaduct's development

Be tenant-developer centric

Seek to understand tenant engineers' experiences, challenges and opportunities as a means to improve the frictions that exist today with the Viaduct framework.

Be opinionated

Approach solutions to problems with an opinionated view as a means to create clarity for tenant developers over excessive choice and unnecessary complexity.

Deliver incrementally

Start small and improve continuously through iteration on our technical solutions and processes. Ship incremental functionality on a frequent cadence.

Scale for the future

Build a system that can grow in reach and capability to more tenant engineers.

Ready to get started?

Set up your first Viaduct tenant in minutes

Start Building