Docs
Getting Started

Getting Started

Vulcan is split into a few components:

  1. The conflict-free database (CR-SQLite)
  2. Platform SDKs
  3. Networking
  4. Live query engine

If an SDK already exists for your platform, visiting those docs would be the quickest way to get started. Otherwise, you'll want to start with the conflict-free database.

Conflict-free Database (CR-SQLite)

CR-SQLite is a SQLite extension that allows sqlite databases to be merged together. This extension can be used independently of all other Vulcan components and loaded into existing SQLite deployments.

Get started with CR-SQLite

Platform SDKs

cr-sqlite can run anywhere and provide you with a database that supports merging over a SQL API. Specific platform & language SDKs also exist to provide higher level APIs.

Networking

You can bring whatever transport you like so long as you follow a few conventions. To create a more complete experience, Vulcan also provides a default networking layer.

Get started with networking

Live Query Engine

To enable applications at scale and extremely time-sensitive interactions, we're building a smart live query (reactive query) engine. This is currently a work in progress, based around the ideas of segment & interval trees (opens in a new tab) and differential dataflow (opens in a new tab).

The reactive queries available in the React integration are not yet based on this engine. They take a simpler approach of re-running queries when the tables those queries use are updated. We've seen this simple approach work for resolving ~100 concurrent queries in a single frame in the browser but we'd like to do better.

The live query engine will also enable scaling on the server and support multi-tenant use cases.