Docs / Platform

Architecture and security

Invariant is split into a control plane, which stores specs, schedules and results, and a data plane, which runs your software and touches your data. The data plane can live entirely in your environment.

Design preview. These docs describe how Invariant is being built. Commands, output and limits are illustrative until release, and stage tags mark what ships first. See the roadmap.

Control plane and data plane

Control plane (Invariant)Data plane (yours, or Invariant cloud workers)
DoesScheduling, run history, statistics, reports, pull request and chat integrationsPulls images, reads logs, runs simulators and your software, writes outputs
StoresRun records, metric values, verdicts, scenario names and hashes, commit SHAsLogs, images, model weights, MCAP outputs, all in your bucket
NetworkHTTPS APIOutbound HTTPS to the control plane and to the storage and registries you configure. No inbound connections.

By default, Invariant never stores your logs, images or model weights in its own storage. Runners stream or cache inputs on local disk for the job and delete them afterwards. If you use Invariant cloud workers, those workers read your bucket the same way. Reports link to files in your bucket, and your viewer opens them with your credentials.

Deployment options

OptionControl planeData planeStatus
Cloud with your runnersInvariantYour machinesMVP
Fully hostedInvariantInvariant cloud workers, reading your bucketNext
Your cloud accountInvariantWorkers in your accountLater
Self-hostedYour environmentYour environment, including air-gappedLater

Planned security controls

Open source and hosted

Invariant is built to fit the stack you already have. The parts that touch your code, machines and data are planned to be open source, so your tests never depend on a hosted service to run. The hosted service keeps the shared record and does the work that needs it.

PartWhere it livesShips
invariant.yaml spec formatYour repo, open sourceMVP, open source Later
CLI and local runnerYour machines, open sourceMVP, open source Later
Adapters and metric packsYour machines, open sourceMVP, open source Later
Run records and the web reportHosted by InvariantMVP
Baselines reused across pull requestsHosted by InvariantNext
Flaky detection, sequential testing and bisect across runsHosted by InvariantNext
Scheduling across your own runnersHosted by InvariantMVP
Scheduling on Invariant cloud workersHosted by InvariantNext
Pull request checksHosted by InvariantNext
Rig queues and release evidenceHosted by InvariantLater

The CLI works with the CI you already use (GitHub Actions, GitLab CI, Buildkite, Jenkins or anything that runs a shell command), and with coding agents through the CLI or the MCP server. Logs and outputs stay in your bucket. Run records and results export as JSON, CSV and MCAP, so you can leave with everything you put in.