SaaS, your bucket, or inside your cloud.
The same four components over one lake of open Parquet. The difference is where storage and compute live — not what the product can do.
Where each piece runs
Drag the slider to move between SaaS, BYOB, and BYOC and see where every component runs.
BYOC · Managed UI
This part runs inside your cloud (your VPC / account)
Cluster #1
Cluster #2
CtrlB data plane — fully managed, in your account
Ingest, query, and Parquet never leave your account.
This part is on CtrlB's cloud
Managed experience
SaaS-simple UI queries your in-account data plane over an encrypted link. Telemetry stays in your VPC.
Auth
Strict data residency
Ingest, query, and Parquet run inside your VPC or cloud account — telemetry stays local.
Air-gap ready
Run the full stack including Flow and SSO entirely inside your account when required.
Managed UI option
Keep the data plane private while Flow and SSO stay on our cloud over encrypted links.
Regulated environments
Built for teams where every byte and every login must stay inside a boundary you control.
How deployment works
From collectors to query — the same logical path in every mode, with different boundaries for storage and compute.
Collectors at the source
OpenTelemetry, Vector, and Fluent Bit ship logs, metrics, and traces from your clusters — the same path in every mode.
Open Parquet on object storage
Telemetry lands as open Parquet with compact inverted indexes beside it. No proprietary warehouse to unwind later.
s3://telemetry-lake/parquet
open Parquet · indexes beside data
Row groups
Indexes
.idx beside .parquet
nothing proprietary · readable by any Parquet engine
One query layer
Data Engine, AI Insights, and MCP read the same lake — whether that lake is in our account or yours.
O2C for BYOB
Object Storage → CtrlB reads Parquet from your bucket and ingests into our query layer. Indexes are written back to your bucket only — fully encrypted.
your bucket
CtrlB
Query from anywhere
Flow, Grafana, Metabase, MCP, and coding agents read the same lake — no exports, no sync jobs, no second copy to keep warm.
one lake · same evidence for humans and agents
How the modes compare
Same product surface. Different residency for Parquet, indexes, and compute.
Compare
Feature
SaaS
We run everything
BYOB
Your bucket
BYOC
Your cloud
SaaS
We run everything
- Where Parquet lives
- CtrlB-operated object storage
- Where ingest & query run
- CtrlB cloud
- Where indexes are written
- CtrlB-operated storage
- What crosses the boundary
- Telemetry ingest + queries
- Flow UI & auth
- CtrlB cloud
- Best when
- You want zero infra to run
BYOB
Your bucket
- Where Parquet lives
- Your S3 / GCS / Azure bucket
- Where ingest & query run
- CtrlB cloud (O2C reads your bucket)
- Where indexes are written
- Your bucket only
- What crosses the boundary
- O2C reads + index writes (encrypted)
- Flow UI & auth
- CtrlB cloud
- Best when
- You already own the lake
BYOC
Your cloud
- Where Parquet lives
- Your cloud account
- Where ingest & query run
- Inside your VPC / account
- Where indexes are written
- Your cloud account
- What crosses the boundary
- Optional UI / auth only
- Flow UI & auth
- Your account or CtrlB cloud
- Best when
- Residency and air-gap matter
What stays the same in every mode
- Open Parquet on object storage — not a proprietary warehouse.
- Data Engine: full-text search, SQL, metrics, and traces.
- AI Insights and MCP over the whole lake, not a sampled window.
- BYOB: O2C reads your bucket; indexes written back to your storage only.
- Grafana, Flow, and agents query the same evidence.
- Encryption in transit across every boundary you cross.
Pick a residency model with an engineer.
We'll map SaaS, BYOB, or BYOC to your cloud account, retention rules, and compliance constraints — then stand up a working lake.
/platform/deployment