Edith – Ad Decisioning Service

Oct 2026

An ad decisioning service that picks an ad for each viewer and counts every ad view with a Flink pipeline.

How Margo, Agnes, and Edith connect through Kafka, with the technologies each one uses
Margo, Edith, and Agnes, and how they fit together

Edith stands for Event-Driven Intelligent Targeting Hub. It decides which simulated ad a viewer sees, and keeps count of how often each ad was shown.

What it does

  • Picks an ad for each viewer, based on interests stored in Redis
  • Reads ad views from Kafka as Agnes reports them
  • Counts views for each ad with a Scala and Flink job
  • Handled a stress test of 10,000 ad views, and the counts added up exactly

Built with: Java, Spring Boot, Scala, Apache Kafka, Apache Flink, Redis, Docker

Code: github.com/marlware/edith