Orchestrate your data.

npm install @orbit/data


Orbit is a framework for orchestrating access, transformation, and synchronization between data sources.

Disparate data

Your application may need to interact with data from a variety of sources: a REST server, a WebSocket stream, an IndexedDB backup, an in-memory store, etc.

Orbit can coordinate data flows across any number of sources through a standard set of interfaces using normalized data structures.

Deterministic tracking

Data correctness is vital to user trust, so you need a deterministic approach to manage it.

Orbit uses a Git-like approach to track changes across data sources. Changes are expressed as "transforms", which are similar to Git commits. Logs provide a per-source history. Like Git repos, sources can be diffed, forked, merged, and reset.

Connect sources

Not all data should be treated uniformly. Some data is transient, while other data can persist for the life of your app. Some changes should be made pessimistically and be confirmed by a remote server. Other changes can be made optimistically, cached locally, and pushed eventually.

Orbit provides coordination strategies which can be customized to the needs of your application.


In an increasingly mobile world, it's ideal to keep applications available even when the Internet is not.

Orbit provides the tools needed to build robust offline experiences. Backup your application's state, including data caches, logs, and queues, to browser storage. Query and change local data when offline, while queueing changes for synchronization when online again.


Orbit is isomorphic - it can be run in modern browsers as well as in the Node.js runtime.

Orbit is written in TypeScript. Its libraries are distributed on npm through the @orbit organization in several module formats and ES language levels.


Your Name Here
Sponsor Development