← All projectsPUBLIC SOURCE · V0.1.0 · PRE-1.0

Ironside

Own the trace before you evaluate it.

System responsibility / 02

Preserve what happened.

Ironside accepts AI interaction data through familiar protocols, preserves the original event evidence, and projects it into a queryable trace system without claiming ownership over evaluation or release decisions.

REFERENCE PIPELINEONE INGEST PATH · TWO DURABLE FORMS
INGEST · ANative JSON
INGEST · BOTLP / gen_ai
INGEST · CLangFuse-compatible
HONO API · FAST ACKValidate the envelopepersist raw batch · queue reference · return
THE API CREATES TWO PATHS
01ORIGINAL EVIDENCE
RAW EVENTS3 / MinIOimmutable object log
Stored before acknowledgement. It can be replayed when projections change.
02QUERY PROJECTION
REFERENCERedis / BullMQ
CONSUMERWorkermap · retry · schedule
QUERY STOREClickHousetraces · observations · scores
READTrace viewerproject · environment · payload
MOVEParquet · OTLP · Webhooksscheduled · signed · resumable

The raw event remains available even when the query model changes. A projection can be rebuilt; original evidence cannot.

02 / SYSTEM OF RECORD

Your observability vendor should not be the only place your evidence exists.

Provider SDKs and evaluation platforms are convenient integration points, but they bring their own schemas and retention assumptions. Once the original interaction is only visible through a derived model, migrations and re-analysis become custom data projects.

Ironside separates intake from interpretation. It writes an immutable raw event log to S3-compatible storage, then processes asynchronous projections into ClickHouse. The trace viewer reads the projection; exports can move the evidence elsewhere. The original event is still there when the query model evolves.

INTEGRATION

Three ways in. One durable path.

01

Native JSON

Send Ironside’s trace, span, generation, and score model directly when you want explicit control.

02

OpenTelemetry

Use OTLP/HTTP and gen_ai semantic attributes with existing instrumentation.

03

LangFuse-compatible

Point a supported client at a familiar API surface while keeping the resulting evidence in your system.

CONTROL PLANE

People and workloads do not share a credential model.

Owner sessions belong to the browser control plane. Instrumented applications use scoped machine credentials with least-privilege access. Projects isolate ownership, while environment values remain observed attributes for filtering—not a substitute for a security boundary.

OWNER SESSIONBrowserconfigure · inspect · export
MACHINE KEYWorkloadscoped ingest · no owner UI
PRODUCT BOUNDARY

Storage and pipes, with a focused way to read them.

Stores

Original events, normalized projections, trace context, and export state.

Shows

A focused trace viewer with project and environment context.

Moves

Parquet exports, OTLP forwarding, signed webhooks, and resumable imports.

Does not own

Evaluation logic, prompt management, or release policy.

Ironside is public source under the Sustainable Use License. Version 0.1.0 is intentionally pre-1.0: the architecture is usable, while interfaces may still change as the system matures.

LOCAL START

Run the full stack yourself.

MinIO, ClickHouse, Postgres, Redis, the API, worker, and viewer are composed as one development stack.

git clone https://github.com/luka-zivkovic/ironside.git
cd ironside
cp .env.example .env
docker compose up --build
Explore the Node SDK