Orbital aqua wormhole background image

Data endpoints in minutes, not months

Design and deploy APIs, event streams, and data pipelines with a simple data contract.
From BFF endpoints to ETL workflows, Orbital handles the plumbing.

Instant data endpoints

Define your pipelines as queries and push to Git. Orbital instantly creates production-ready services.

Whether REST APIs, Kafka topics, websockets, or batch workflows. No infrastructure code required.

Learn more

Powerful performance insights

Beautiful dashboards capture and visualize your endpoint metrics, latency and usage patterns out-of-the-box.

Learn more

Flexible event streams

Create bespoke data streams, tailored for each consumer - from stream processing to event-driven architectures

Data transformation

Define ETL pipelines and data transformations as code, deployed as endpoints

Self-repairing endpoints

Endpoints and pipelines automatically adapt as your upstream schemas and APIs change

View docs

Use cases

Simple, declarative orchestration

Design and deploy APIs, event streams and data pipelines with a simple query language.

From BFF endpoints to ETL workflows, Orbital handles the infrastructure

Orbital aqua wormhole background image
API Aggregation (BFF)

endpoints.taxi

@HttpOperation(url='/api/q/customers/{customerId}, method = 'GET')
query CombineCustomerData(@PathVariable customerId: CustomerId) {
  given { customerId }
  find {
    // Customer data comes from our CRM
    firstName : FirstName
    lastName : LastName
    balances : {
      // Account balances come from the accounts API
      accountBalance: AccountBalance
    }
    // Points come from the RewardsPoints API
    pointsStatus: RewardsPointStatus
  }
}
    
Try this example in the playground

Bespoke event streams

endpoints.taxi

@WebsocketOperation(url='/api/q/customers/{customerId}')
query CustomerPurchaseEventStream {
  stream { CustomerPurchaseEvent }
  as {
    // Customer data comes from our CRM
    firstName : FirstName
    lastName : LastName

    purchases: OrderId[] as {
      orderId: OrderId
      // Fetch the product name from the product db
      productName : ProductName
      // Fetch the stock levels from the stock API
      stockLevels : StockLevels
      // Calculate if we have sufficient in stock
      hasSufficient: Boolean = StockLevels <= PurchasedQty
    }[]
  }
}
Try this example in the playground

Data normalization pipeline (ETL)

normalize-supplier-feeds.taxi
// This snippet shows two vendors - VendorA and VendorB providing stock
// reports in different CSV formats.
// Read them from S3, and enrich the data
// The full working example is available in the playground
query CustomerPurchaseEventStream {
  find { VendorAStockReport[] | VendorBStockReport[]
  as {

    }[]
  }
}
Try this example in the playground

Data Semantics unlocks your company's true data value, and Orbital makes it effortless.

Using Taxi & Orbital for our re-platforming project, we cut time to market from months to days and reduced operational resources by two-thirds.

If you're not using this solution yet, you're falling behind.

Orbital and Taxilang is a game-changer for data integration.

The elegance and simplicity of the concept of declarative semantic schemas leads to a composable data-oriented architecture fit for the 21st century.

Start integrating now
Start for free