Engineering · Architecture
Analytics built with Rust and ClickHouse.
Fast to ingest, fast to query, and honest about your data. Here's the stack behind Tradly Memory and why it matters for your analytics.
Why it matters
Analytics quality starts with the stack
The tools you use to capture and store behavior determine how fast, how accurate, and how cheap your analytics can be. We chose Rust and ClickHouse deliberately.
Most web analytics platforms are built on general-purpose infrastructure: a scripting language doing ingestion, a row store doing queries, and layers of caching to make it look fast. That architecture works until your event volume grows — then the caches grow, the costs grow, and the queries slow down.
Tradly Memory is built differently. The ingestion path runs on Rust, chosen for memory safety, concurrency, and low overhead. The storage engine is ClickHouse, a columnar database designed for exactly this workload: high write throughput and fast aggregations over behavior data. The result is a stack that stays fast and affordable as your signal volume scales.
The stack at a glance
Layer by layer
| Layer | Built with | Why |
|---|---|---|
| Capture | Pixel + server SDKs | Behavior captured with one script, no PII |
| Ingestion | Rust services | Memory-safe, high-throughput, low-latency event intake |
| Storage | ClickHouse | Columnar storage, high write throughput, compressed |
| Memory | Behavior profiles | Per-visitor intent joined across sessions |
| Access | API + MCP | Scoped, queryable answers for teams and agents |
Architecture
Pixel → Rust → ClickHouse → Memory → Agents
Pixel
Pages, searches, and clicks.
Rust ingestion
Fast, safe event intake.
ClickHouse
Columnar behavior storage.
Memory
Per-visitor intent profiles.
Agents
Scoped answers via MCP.
Why Rust
Ingestion you can trust under load
Memory safety without a garbage collector
Rust's ownership model catches memory bugs at compile time and avoids a garbage collector's pause overhead. For an ingestion path that runs continuously on high-volume traffic, that means fewer surprises in production and more predictable latency.
Concurrency without the boilerplate
Event intake is inherently parallel. Rust's model makes safe, high-throughput concurrent services practical — so the pipeline scales with your traffic without a rewrite.
Low footprint
Rust services are small and efficient. The infrastructure cost stays proportionate to the value, instead of ballooning as the event stream grows.
Why ClickHouse
Storage built for behavior data
Columnar storage for fast aggregations
Behavior analytics asks column-shaped questions — "how many visitors viewed pricing this week?" ClickHouse stores each column separately, so it scans only the fields a query needs instead of whole rows.
High write throughput
Analytics pipelines append far more than they update. ClickHouse is engineered for exactly that: high-volume inserts that keep up with a busy site's event stream.
Compression that keeps cost down
Columnar layout compresses well, and compression is where the storage bill is won or lost. ClickHouse keeps a growing behavior history affordable.
What this means for you
Fast, honest, and lean analytics
See the stack in action
Install the pixel and watch Rust-built ingestion and ClickHouse storage turn visitor behavior into agent-ready memory.
Install the pixel