Skip to main content

Architecture

This page goes a level deeper than the overview: the major services, the data they own, and how a typical request flows end to end. It is aimed at technical readers evaluating or integrating with the platform.

Component map

The control plane

The control plane is a single API server that every client talks to. It exposes:

  • a REST API under /api/v1/...,
  • a gRPC endpoint for the Vehicle HAL (VHAL) pass-through, and
  • health and metadata endpoints under /-/..., including a live OpenAPI schema at /-/openapi/schema.

It owns the platform's relational state and consults a dedicated authorization service for every access decision. Authorization is a hard dependency: the control plane will not serve traffic without it, which guarantees that no request is ever handled without an access check in place.

What the control plane manages

DomainExamples
Emulatorsdeploy from snapshot, list, status, logs, restart, ADB proxy, snapshot swap, delete
Snapshotslist, detail, tree, storage capacity, delete, promote-to-root
Backups / Restorestenant-scoped volume backup and restore
Tenancytenants, groups, members, grants, global admins
Identityusers, VCS providers, account linking, permissions
Fleet modeltarget types, targets, endpoints, applications
Onboardingtenant setup and provisioning operations

Request lifecycle

Here is what happens when you launch an emulator. The same shape applies to most write operations.

Provisioning is asynchronous: the control plane records the request and returns immediately, then does the heavy lifting (snapshot clone, scheduling, boot) in the background. Clients poll the status endpoint, and the portal and nullctl do this for you.

Real-time channels

Beyond plain REST, the platform carries several live streams:

  • Device video and input: your browser connects to the emulator over WebRTC, relayed through a secure media relay so it works from anywhere.
  • ADB: a WebSocket proxy bridges your local adb (or the in-browser ADB panel) to the device's debug bridge.
  • Logs: emulator logs stream over Server-Sent Events (SSE).
  • VHAL: vehicle properties stream over gRPC, forwarded to the in-device vehicle HAL server.

Background services

Two capabilities run behind the scenes:

  • Snapshot management handles volume snapshots for ephemeral CI volumes: restoring the latest matching snapshot when a job starts, capturing a new one when it finishes, and handling retention and storage health. This is what makes builds start warm and emulators boot fast. See Snapshots.
  • Tenant provisioning manages isolation at the infrastructure level, deploying the platform's services into dedicated, isolated environments per tenant. See Multi-Tenancy.

Infrastructure foundation

The platform runs on elastic cloud infrastructure across major cloud providers, provisioned as code. Customers benefit from:

  • a managed gateway with automated TLS on every public hostname,
  • single sign-on and federated identity,
  • a high-performance storage tier for fast snapshots and emulator disks,
  • a secure media relay for browser-to-emulator streaming, and
  • elastic compute, including on-demand pools for builds and virtualization-capable nodes for emulators.

See Security for how these pieces are hardened.