Naboria Ads — Technology Stack

A high-performance analytics and ad delivery pipeline built with Rust, Kafka, ClickHouse, and an ML layer powered by dbt and XGBoost.

Back to Stack Overview

Components

Every piece of the Naboria Ads stack and what it does.

Server

Rust / Axum

A fast, reliable backend that handles all tracking requests and serves ads to clients.

Messaging

Apache Kafka

A message queue that absorbs high volumes of events, ensuring no data is lost under load.

Analytics Storage

ClickHouse

A high-performance analytics database purpose-built for querying billions of events in real time.

Ad Storage

MongoDB

A flexible document store for ad definitions, supporting banner and video ad formats.

Personalisation

Redis

Caches per-user ad scores and click history so the SSE stream can serve the most relevant ad without blocking the request path.

Tracker

naboria-tracker.js

A lightweight JavaScript library that integrates into any web or mobile app with a single init() call.

Data Pipeline

dbt

Transforms raw events into clean, analytics-ready datasets using version-controlled SQL.

Machine Learning

XGBoost + MLflow

Predictive models for ad click-through rate and booking conversion, with full experiment tracking.

Dashboards

Analytics UI

Real-time dashboards for views, clicks, ad performance, and user activity — refreshed automatically.

Orchestration

Dagster

Schedules the feature materialisation pipeline every 10 minutes, keeping the online feature store fresh for ML inference.

Reverse Proxy

Caddy

Handles HTTPS termination with automatic Let's Encrypt certificate provisioning. Zero configuration for production TLS.

Observability

Prometheus + Grafana

Scrapes request rates, latency percentiles, and active SSE connections every 15 seconds. Pre-built dashboard included.

Back to Stack Overview Naboria RMA Stack