Skip to main content
MovR is a fictional vehicle-sharing company created to demonstrate CockroachDB’s features.

Overview

The MovR example consists of the following:
  • The movr dataset, which contains rows of data that populate tables in the movr database. The movr dataset is built into cockroach demo and cockroach workload.
  • The MovR application, a fully-functional vehicle-sharing application, written in Python. All of MovR application source code is open-source, and available on the movr GitHub repository.

The movr database

The six tables in the movr database store user, vehicle, and ride data for MovR: Geo-partitioning schema

Generating schemas and data for MovR

You can use the cockroach demo and cockroach workload commands to load the movr database and dataset into a CockroachDB cluster. cockroach demo opens a SQL shell to a temporary, in-memory cluster. To open a SQL shell to a demo cluster with the movr database preloaded and set as the current database, use the following command:
cockroach workload loads sample datasets and workloads into running clusters. To load the movr database and some sample data into a running cluster, do the following:
  1. Start a secure or insecure local cluster.
  2. Use cockroach workload to load the movr dataset:
  3. Use cockroach sql to open an interactive SQL shell and set movr as the current database:

How the MovR application works

The workflow for MovR is as follows:
  1. A user loads the app and sees the 25 closest vehicles. For example:
  2. The user signs up for the service. For example:
  3. In some cases, the user adds their own vehicle to share. For example:
  4. More often, the user reserves a vehicle and starts a ride, applying a promo code, if available and valid. For example:
  5. During the ride, MovR tracks the location of the vehicle. For example:
  6. The user ends the ride and releases the vehicle. For example:

Extended examples

For a tutorial on running MovR against a multi-region cluster, using two important multi-region data topologies to get very low latency reads and writes, see Low Latency, Multi-Region Deployment.

Develop and deploy a global application

For a tutorial on developing and deploying a globally-available web application for MovR, use the following docs:
  1. MovR: A Global Application Use-case
  2. Create a Multi-region Database Schema
  3. Set up a Virtual Environment for Developing Global Applications
  4. Develop a Global Application
  5. Deploy a Global Application

See also