Position against Cribl as well as Splunk, and say what that costs us
Splunk and Cribl are not the same competitor and the claim is not the same claim twice. Splunk is the destination and Cairn OBS replaces it, which is what phases 0-7 were for. Cribl is the road: routing, reduction, enrichment, redaction and replay on the way to wherever data is going. Cairn OBS is already a road in shape -- agent, Redpanda, ingest -- and exposes none of a pipeline's controls. The agent cannot filter, drop, sample, mask or re-route anything; ingest normalises a schema and writes it; there is exactly one destination and it is us. Reconciling the two turns up something a cost-led project has to face rather than paper over: most people buy Cribl because Splunk is expensive per gigabyte, so being genuinely cheap per gigabyte removes the main reason to buy Cribl in front of us. That makes the strongest pitch "one system where there were two" rather than "we are also a pipeline vendor" -- but that pitch only survives a buyer if we also do the four things people buy a pipeline for that are not about spend: routing to several destinations, redacting before data leaves the network, archive and replay, and not being locked to one analytics vendor. Those are about control, which is better ground anyway: cost advantages get matched and architectural ones do not. The consequence is uncomfortable and is written down as a decision rather than left to be discovered: competing with Cribl means being able to send data to S3, Splunk HEC, Elastic, OTLP and Kafka -- building features whose purpose is to help data leave this platform. A project that refuses lock-in in its licence and then builds it into its egress would be lying about itself. Four phases follow, ordered so each pays for itself: processing (8), routing (9), archive and replay (10), fleet (11). Processing without routing still shrinks what is stored; routing without processing forwards everything and helps nobody. One design decision is called out now because it collides with a non-negotiable constraint. Cribl's rule language is JavaScript, and embedding a JS engine in a statically-linked musl agent would end "no glibc runtime deps" as a claim. The recommendation is a declarative rule DSL -- matchers and typed actions, no arbitrary code -- deliberately less expressive, small enough to audit and safe to push to ten thousand hosts. The retention/TTL question in architecture.md is no longer deferrable and now says so: Phase 10 asks it from the other side.
This commit is contained in:
+12
-2
@@ -15,6 +15,13 @@ Open-core, Kubernetes-native centralized logging platform. Compete with
|
||||
Splunk on features; win on cost-per-GB, a modern language stack, and
|
||||
multi-tenant RBAC that's actually honest about its guarantees.
|
||||
|
||||
Positioned against Cribl as well as Splunk — the destination and the road
|
||||
are separate claims with separate consequences, worked through in
|
||||
[positioning.md](positioning.md). The pipeline controls that implies
|
||||
(processing, routing to third-party destinations, archive and replay, fleet
|
||||
configuration) are not built, and the data path today has exactly one
|
||||
destination.
|
||||
|
||||
## Component map
|
||||
|
||||
```
|
||||
@@ -264,8 +271,11 @@ defense against application-layer bugs, not an operational control.
|
||||
|
||||
## Open questions for you to resolve
|
||||
|
||||
- Retention/TTL policy for the ClickHouse `logs` table — not specified yet,
|
||||
deferred until storage sizing is a real concern.
|
||||
- Retention/TTL policy for the ClickHouse `logs` table — not specified yet.
|
||||
This was deferred until storage sizing became a real concern; Phase 10's
|
||||
archive/replay work is where it stops being deferrable, since tiering to
|
||||
object storage and reading back from it is the same question asked from
|
||||
the other side. See [positioning.md](positioning.md).
|
||||
- Exact OTel log schema field mapping (which OTel resource/log attributes
|
||||
map to which ClickHouse columns) — Phase 0 uses a minimal subset
|
||||
(timestamp, host, service, severity, message, attributes map); full
|
||||
|
||||
Reference in New Issue
Block a user