Orbit can work in the browser and on the server, offline and online, to manage whatever sources of data your app needs.
Orbit's more than just another ORM, it's a flexible and composable data framework.
// Query example: filtering, sorting, & paginating source.query(q => q.findRecords('planet') .filter({ attribute: 'classification', value: 'terrestrial' }) .sort('name') .page({ offset: 0, limit: 10 }));
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 source, etc.
Orbit can coordinate data flows across any number of sources through a standard set of interfaces using normalized data structures.
learn moreData 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.
learn moreNot 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.
learn moreIn 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.
learn moreOrbit 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.
learn more