Instant data services
Deploy data services in minutes
Define the data you want. Orbital works out how to fetch, join and transform it, then exposes the result as a REST API, event stream or scheduled job.
No BFFs, pipelines or integration code to maintain.
Query. Commit. Deploy.
Publish any query as an API, stream or background job. Commit, push, and Orbital deploys it.
Deploy
Deploy from Git
Commit a query and Orbital turns it into a running service.
REST APIs, Kafka streams, WebSockets and batch jobs all use the same deployment model, with no per-endpoint infrastructure to provision.

Observability
See how your endpoints are running
Track throughput, latency and errors for every deployed endpoint, stream and job.
Drill into individual executions when something looks wrong.

Streams for each consumer
Give each consumer exactly the event shape it needs. Orbital can filter, join and enrich the same underlying stream differently for every subscriber.
Data transformation
Build ETL jobs as TaxiQL queries. Read from files, databases and APIs; join, enrich and transform the data; then write the result to its destination..
Adapts as systems change
When upstream APIs and schemas evolve, Orbital replans the integration behind your endpoint.
APIs, streams and ETL
Design and deploy APIs, event streams and data pipelines with a simple query language.
From BFF endpoints to ETL workflows, Orbital handles the infrastructure.
Define the response your frontend needs. Orbital fetches and joins the data from the services behind it, then publishes it as one endpoint.
Define a different event shape for each consumer, all from the same source topic. Orbital filters and enriches each stream independently.
Read files from S3, normalize different source formats into one model, enrich them from APIs if needed, then write the result downstream.
@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 }}@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 }[] }}// This snippet shows two warehouses - WarehouseA and WarehouseB providing stock// reports in different CSV formats.// Read them from S3, and enrich the data.@Csvclosed model WarehouseA { Product_Name : ProductName Stock_Level : StockLevel Unit_Price : Price}
@Csvclosed model WarehouseB { ItemName : ProductName Quantity : StockLevel Cost : Price}query NormalizeSupplierFeeds { find { warehouseA : WarehouseA[] as StandardInventory[] warehouseB : WarehouseB[] as StandardInventory[] }}
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 Taxi 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.
Frequently asked questions
Got another gnarly question? We’d love to hear it. Come and chat on Slack.
Ship an endpoint before your next stand-up
Write a query, push it, and Orbital runs it as a REST API, a stream or a scheduled job.

