# dtkmn/rtb-ingress-benchmark architecture

> Architecture diagram of the GitHub repository dtkmn/rtb-ingress-benchmark, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/dtkmn/rtb-ingress-benchmark
- Repository: https://github.com/dtkmn/rtb-ingress-benchmark

## Overview

RTB Ingress Benchmark Harness compares HTTP receiver implementations under HTTP-only, enqueue, and Kafka-confirmed delivery modes. The principal workflow is k6 load generation against receiver lanes, which validate bid requests and—in Kafka modes—publish them to Kafka; benchmark runs produce results that can be selectively promoted to the published dashboard. README documents the receiver/Kafka scenario and published-snapshot policy. Receiver internals and the downstream sinker/storage wiring are only partly sampled, so those relationships are not inferred here.

Main entry points: [`services`](https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services) (Ingress Lanes), [`k6/load-test.js`](https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/k6/load-test.js) (Load Generator), [`services/rust-receiver/src/main.rs`](https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/services/rust-receiver/src/main.rs) (Rust Receiver), [`site/src/data/published-snapshots.json`](https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/site/src/data/published-snapshots.json) (Published Snapshots)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_bench["Benchmarking"]
  node_load["Load Generator<br/>[load-test.js]"]
end

subgraph group_receivers["Receiver Services"]
  node_ingress["Ingress Lanes"]
  node_rust["Rust Receiver<br/>[main.rs]"]
  node_go["Go Receiver"]
  node_node["Node Receiver<br/>[app.js]"]
  node_python["Python Receiver<br/>[main.py]"]
  node_quarkus["Quarkus Receiver"]
  node_spring["Spring Receiver"]
  node_springvt["Spring VT Receiver"]
end

subgraph group_stream["Streaming"]
  node_kafka["Kafka"]
  node_sinker["Quarkus Sinker"]
  node_postgres[("PostgreSQL")]
end

subgraph group_reporting["Results And Dashboard"]
  node_results["Run Results"]
  node_published["Published Snapshots"]
  node_dashboard["Benchmark Dashboard<br/>[site-data.json]"]
end

node_prometheus["Prometheus"]
node_grafana["Grafana"]
node_jaeger["Jaeger"]

node_load -->|"loads"| node_ingress
node_ingress -->|"publishes valid bids"| node_kafka
node_published -->|"selects snapshots"| node_dashboard
node_rust -->|"publishes bids"| node_kafka

click node_load "https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/k6/load-test.js"
click node_ingress "https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services"
click node_rust "https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/services/rust-receiver/src/main.rs"
click node_go "https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services/go-receiver"
click node_node "https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/services/node-receiver/src/app.js"
click node_python "https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/services/python-receiver/app/main.py"
click node_quarkus "https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services/quarkus-receiver"
click node_spring "https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services/spring-receiver"
click node_springvt "https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services/spring-virtual-receiver"
click node_sinker "https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services/quarkus-sinker"
click node_results "https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/results"
click node_published "https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/site/src/data/published-snapshots.json"
click node_dashboard "https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/site/src/data/site-data.json"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_load toneBlue
class node_ingress,node_rust,node_go,node_node,node_python,node_quarkus,node_spring,node_springvt toneAmber
class node_kafka,node_sinker,node_postgres toneMint
class node_results,node_published,node_dashboard toneRose
class node_prometheus,node_grafana,node_jaeger toneIndigo
```

## Components

### Benchmarking

- [Load Generator](https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/k6/load-test.js): `k6/load-test.js`

### Receiver Services

- [Ingress Lanes](https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services): `services`
- [Rust Receiver](https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/services/rust-receiver/src/main.rs): `services/rust-receiver/src/main.rs`
- [Go Receiver](https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services/go-receiver): `services/go-receiver`
- [Node Receiver](https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/services/node-receiver/src/app.js): `services/node-receiver/src/app.js`
- [Python Receiver](https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/services/python-receiver/app/main.py): `services/python-receiver/app/main.py`
- [Quarkus Receiver](https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services/quarkus-receiver): `services/quarkus-receiver`
- [Spring Receiver](https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services/spring-receiver): `services/spring-receiver`
- [Spring VT Receiver](https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services/spring-virtual-receiver): `services/spring-virtual-receiver`

### Streaming

- **Kafka**
- [Quarkus Sinker](https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/services/quarkus-sinker): `services/quarkus-sinker`
- **PostgreSQL**

### Results And Dashboard

- [Run Results](https://github.com/dtkmn/rtb-ingress-benchmark/tree/main/results): `results`
- [Published Snapshots](https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/site/src/data/published-snapshots.json): `site/src/data/published-snapshots.json`
- [Benchmark Dashboard](https://github.com/dtkmn/rtb-ingress-benchmark/blob/main/site/src/data/site-data.json): `site/src/data/site-data.json`

### Other components

- **Prometheus**
- **Grafana**
- **Jaeger**

## Connections

- Load Generator → Ingress Lanes: loads (evidence: `README.md`)
- Ingress Lanes → Kafka: publishes valid bids (evidence: `README.md`)
- Published Snapshots → Benchmark Dashboard: selects snapshots (evidence: `README.md`)
- Rust Receiver → Kafka: publishes bids (evidence: `services/rust-receiver/src/main.rs`)
