How crucible
actually works.
No magic, no marketing diagrams. One ingest layer, one columnar storage layer, one query planner. Everything else is wire format. We wrote this page the way an engineer would want to be sold to — small enough to read in one coffee, honest enough to spot the holes.
Wires in. Segments out.
┌─ your services ─────────────────────────────────────┐
│ api · worker · cron · edge · sidecar · k8s · vm │
└─────────────────┬───────────────────────────────────┘
│ OTLP · syslog · raw TCP · HTTP · Kafka · Vector
▼
┌─ ingest workers ──────────────────────────────────┐
│ parse · validate · enrich · dedup · zstd · batch │
└─────────────────┬─────────────────────────────────┘
│ columnar segments · 64 MB · inverted index
▼
┌─ hot tier ─────────────────┐ ┌─ in-memory index ─┐
│ last 7 days · NVMe │ ←→ │ field cardinality │
│ full-text + columnar │ │ bloom · skiplist │
└─────────────────┬──────────┘ └────────────────────┘
│ age > 7d · tier down
▼
┌─ cold tier · S3 · ∞ ──────────────────────────────┐
│ your bucket · your KMS key · your egress-free │
└─────────────────┬─────────────────────────────────┘
│ tier-up on query · 1 RTT to first row
▲
┌─ query planner ───────────────────────────────────┐
│ prunes > 99% of partitions before touching disk │
└─────────────────┬─────────────────────────────────┘
▼
your dashboard · alert · API
S3 is the database.
Last 7 days. NVMe.
Newly ingested segments live on local NVMe of the ingest layer. Median time-to-query is 38 ms. Replicated 2× within a region for durability. The hot index keeps field cardinality, bloom filters and skiplists in RAM.
S3. Infinite.
After 7 days, segments tier down to your own S3 bucket with your own KMS key. We don't store a copy. You pay AWS, not us. Query latency from cold is 1 RTT to first row.
Inverted + columnar.
Each field gets a Roaring-bitmap inverted index plus a columnar dictionary. The query planner uses both. 99% of partitions are skipped before the first byte is read. No full scans. Ever.
11 nines. Calmly.
S3 gives us 99.999999999% durability by default. Cross-region replication is a checkbox. Audit logs of every read and write are themselves logged into a separate, write-only bucket — we cannot tamper with our own audit trail.
One language. Three dialects.
CrQL · pipe-style by default.
Built for the way operators actually read incidents — left to right, source first, filters early, aggregations last. No JOINs you didn't ask for.
Every clause is a pipe. Every pipe is observable. The planner exposes its own plan as a log-line — you can query the query.
- summarize · group + aggregate
- where · push-down filters
- bin · time-bucketing
- top / takeany · sampling
- extend · derived columns
- parse · regex into fields, indexed on the fly
It speaks whatever you ship.
Audited. Encrypted. Boring.
Self-host or managed.
One binary.
Your hardware.
- Apache-2 OSS core · no source-available trickery
- Single static binary · 24 MB · no JVM
- Backed by your own S3-compatible bucket
- Helm chart, systemd, docker, nomad, bare-metal
- Air-gapped install · we'll never see your data
- Pay for support if you want it · or don't
One signup.
Your bucket.
- Identical binary, managed by us
- 23 regions · BYOC (bring-your-own-cloud) in 4
- SLA · 99.95% · credits if we miss
- SOC 2 · ISO · HIPAA · BAA / DPA on request
- Audit log written to a bucket you control
- Leave with your data, in your format, in one CLI