Orbital is a free, open source integration platforms project written in TypeScript and released under a custom open-source licence. It has 360 GitHub stars, 14 forks and 14 open issues, and was last pushed 3 months ago. On this registry it ranks #5 of 5 tracked projects in Integration Platforms, with 5 head-to-head comparisons available.

What is Orbital?

Orbital is an open-source data gateway that connects APIs, databases, queues and functions without hand-written glue code, aimed at platform, integration and data engineers building BFFs, API composition layers and ETL pipelines.

What it is

Orbital is a data gateway that automates the orchestration, integration and transformation of data and services across an enterprise, covering APIs, databases and message brokers. It is a TypeScript project distributed as the Docker image orbitalhq/orbital and as Maven artifacts under the io.vyne.platform group on repo.orbitalhq.com. Its integration logic is decentralized: no central mapping code is defined, and Orbital instead builds integration on the fly from the API specs a team is already building, enriched with semantic metadata.

The concrete problem it solves is glue code. Code that stitches APIs together is brittle and breaks whenever an API changes, so every upstream schema change becomes downstream work. Orbital replaces that stitching by reading existing specs — OpenAPI, Protobuf and database descriptions are documented — and deriving the integration from them, adjusting automatically as those specs change so consumers stay unaffected. It describes itself as data federation, a single API for all sources, without requiring a shift to GraphQL, and it is powered by Taxi, which adds the semantic metadata describing how data relates between sources.

Key capabilities

  • Builds integration flows on the fly from API specs, with no central mapping code to maintain.
  • Embeds semantic type metadata directly in existing specs: an OpenAPI schema property can carry x-taxi-type with name: MovieId.
  • Bootstraps shared terms through a Taxi project, created with taxi init, defining types such as MovieId inherits Int and MovieTitle inherits String.
  • Works across REST, gRPC, SOAP and Kafka sources; the project describes itself as technology agnostic.
  • Adapts integration flows automatically as API specs change, keeping consumers unaffected.
  • Ships as a Docker image, orbitalhq/orbital, with Maven artifacts published on repo.orbitalhq.com.
  • Targets BFFs, API composition and ETL and data-ingestion pipelines that must follow spec changes.

Who uses it and how

  • Platform teams running polyglot estates that mix REST, gRPC, SOAP and Kafka services and do not want one gateway to require a single protocol.
  • Teams building backends for frontends and API composition layers, where the topic list names bff and bff-api alongside api-gateway and api-management.
  • Data engineers assembling ETL and data-ingestion pipelines over APIs, databases and message brokers without writing per-pair transforms.
  • Organisations that already maintain OpenAPI or Protobuf specs and want integration driven by those specs rather than by a parallel mapping layer.
  • Self-hosters evaluating it locally by running the Docker Compose stack and browsing it on port 9022.

Getting started

Fetch the docker-compose.yml that matches your operating system from https://start.orbitalhq.com/, either in a browser or with curl -H "x-os: ${OS:-${OSTYPE:-$(uname)}}" https://start.orbitalhq.com -o docker-compose.yml, then run docker compose up and open http://localhost:9022.

How it compares

The facts name no paid products that Orbital replaces, so the nearest named point of comparison is GraphQL-based federation, which the README positions Orbital against: it offers data federation without a shift to GraphQL. The other named dependency is Taxi, which supplies the semantic metadata layer on top of API specs the team already has.

When to use it — and when not to

A self-hoster must run and operate the Docker Compose stack, including the platform-specific Docker features that some of Orbital's test features rely on, and must maintain a Taxi project and metadata in the underlying specs — the integration only works if someone enriches those specs. The repository's licence is reported as NOASSERTION, so the terms should be confirmed before commercial adoption. Teams unwilling to annotate their API specs with semantic metadata, or those expecting a hosted offering, should look elsewhere; the supplied material documents only the self-hosted Docker path.

project readme (upstream, from github) — read inline

Header

Docker Pulls Latest Version Pipeline status

Join us on Slack Follow us on Twitter

Website   •    Docs   •    Blog    Get in touch

Orbital automates integration between your data sources.

It's decentralized by nature - there's no central mapping code defined. Instead, Orbital is powered by the API specs you're already building.

Orbital creates integration on-the-fly, without engineers having to write glue code.

Get started right now, by spinning up Orbital on your machine.

  • Grab the docker-compose.yml at https://start.orbitalhq.com/
    • Note that some of Orbital's test features leverage platform-specific docker features.
    • So, either visit the above in a browser and download the file (we'll work out the correct one to serve you), or...
    • curl -H "x-os: ${OS:-${OSTYPE:-$(uname)}}" https://start.orbitalhq.com -o docker-compose.yml will also fetch the right version for your OS
  • Then docker compose up
  • Finally visit http://localhost:9022 in your browser.
# for the impatient...
curl  -H "x-os: ${OS:-${OSTYPE:-$(uname)}}" https://start.orbitalhq.com -o docker-compose.yml
docker compose up -d

What is Orbital?

Orbital is a data gateway that automates the orchestration, integration and transformation of data and services (API’s, databases, message brokers) across your enterprise. Powered by your API specs enriched with Semantic Metadata, Orbital removes the need for glue code, and self adapts as your services evolve.

Think of it as data federation (a single API for all your sources), without having to shift to GraphQL.

Orbital integrates on-the-fly, automatically adjusting as your data sources change.

This is powered Taxi which adds rich Semantic Metadata to your exist API specs, that describes how data relates between your data sources.

Network Diagram

Why Orbital?

  1. No glue code: Glue code that stitches APIs together is brittle, breaking whenever APIs change.
  2. API First: Orbital is powered by your existing API specs, meaning less code to maintain
  3. Technology Agnostic: Using gRPC? REST? SOAP? Kafka? Orbital doesn't care. It'll work with what you have
  4. Automatically Adapts: As your API specs change, Orbital automatically adapts it's integration flows, so consumers stay unaffected.

How does it work?

Here's the main ideas of Orbital.

  1. Define some shared terms

Create a Taxi project:

taxi init

... and create some types...

type MovieId inherits Int
type MovieTitle inherits String
// ... etc...
  1. Add metadata into your APIs
# An extract of an OpenAPI spec:
components:
  schemas:
    Reviews:
      properties:
        id:
          type: string
+           # Embed semantic type metadata directly in OpenAPI
+           x-taxi-type:
+             name: MovieId

(See the full docs for OpenAPI, or other examples in Protobuf and Databases)

  1. Publish your API specs to Orbital

Tell Orbital about your API. There's a few ways to do this.

  1. Query for data

Some example queries:

// Find all the movies
find { Movie[] }

// Find a specific movie
find { Movie(MovieId == 1)}

// Join some other data
find { Movie[] } as {
    title: MovieTitle

    // Compose together APIs:
    // Where can I watch this?
    // This data comes from another REST API
    streamingServiceName: ServiceName
    price: PricePerMonth

    // Reviews - is the film any good?
    // This data comes from a third API
    reviewScore: ReviewScore
    reviewText: ReviewText
}

Orbital builds the integration for each query, and composes the APIs on demand.

Because it's powered by API specs:

  • There's no resolvers to maintain
  • Changes to API specs are automatically main

Taxi

Under the hood, Orbital is a TaxiQL query server.

Links

Get in touch

FAQ's

How does this relate to GraphQL?

Orbital gives you many of the benefits of GraphQL (API federation, custom response schemas), without having to move your tech stack over to GraphQl - instead working with your existing tech stack(s).

The key differences are:

Technology agnostic

GraphQL works great when you have GraphQL everywhere. For everything else, you have to maintain a seperate shim layer to adapt your RESTful API / Database / Message Queue etc., to GraphQL.

Orbital and Taxi work by embedding metatdata in your existing API specs (OpenAPI / Protobuf / Avro / JsonSchema, etc), so that you don't need to change the underlying tech you're using.

Decentralized, spec-first federation

Orbital is built for decentralized teams, so that teams can ship changes independently, without having to build and maintain a seperate integration layer.

Resolver-free

Resolvers in GraphQL are integration code that has to be maintated - often by a dedicated GraphQL / middleware team. This means teams that own services have to co-ordinate changes with a seperate integration team.

Instead, Orbital uses Taxi metadata embedded in API specs to define how data relates semantically. From here, most integration can be created automatically.

Does this mean all my systems have to have the same ID schemes and request/response models?

Nope. Taxi is designed to encourage teams to evolve independently, without sharing common models. Instead, semantic scalars are used to compose models together automatically.

We talk more about that in Why we built Taxi

I can't embed tags in my API specs - does that stop me using Orbital?

Nope. There's plenty of options if you can't edit API specs directly (or don't have them) - such as working with a clone of the spec, or implementing the spec from scratch in Taxi (it's really quick)

Doc links

Frequently asked questions

Is Orbital free to use?

Orbital is open source. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Orbital do?

Connect APIs, databases, and streams without glue code

What is Orbital written in?

Orbital is primarily written in TypeScript. Its source is publicly available at https://github.com/orbitalapi/orbital, and it has 360 GitHub stars.