TradlyTradly Memory

    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

    LayerBuilt withWhy
    CapturePixel + server SDKsBehavior captured with one script, no PII
    IngestionRust servicesMemory-safe, high-throughput, low-latency event intake
    StorageClickHouseColumnar storage, high write throughput, compressed
    MemoryBehavior profilesPer-visitor intent joined across sessions
    AccessAPI + MCPScoped, 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.

    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