Abdul HaqueHire me
Back to my work
WRK-04 · 2026 · client work

Fraud Detection and Reporting

Real-time fraud detection for a regulated retail bank. Transactions stream in, private fields are masked, and the regulator gets its Suspicious Transaction Report automatically.

KafkaStreamSetsPrometheusGrafana
Report cadence5 minautomatic filing to the regulator
Fields masked6PII, before anything else sees it
Dashboards3Grafana, with CRITICAL alerts

The idea

The problem

A bank has to spot suspicious transactions as they happen and report them to the regulator on a schedule, while keeping customers' personal data out of places it does not belong.

The answer

An event-driven pipeline on Kafka. Data is masked early, checked, filed automatically, and watched by dashboards that shout when verification fails.

How a transaction travels

Each stage reads from a stream and writes to the next, so a slow stage never loses data.

STREAMMASKDETECTREPORTWATCH
1. STREAM

Transactions arrive on Kafka topics.

2. MASK

StreamSets pipelines mask six PII fields before the data travels any further.

3. DETECT

A FastAPI service flags suspicious activity and stores the results in PostgreSQL.

4. REPORT

A Suspicious Transaction Report is filed to the regulator automatically every 5 minutes.

5. WATCH

Prometheus and Grafana track it, with CRITICAL alerts when verification fails.

The hard parts

Regulated money, real time, and personal data.

Privacy first

PII masking on six fields happens early in the pipeline, so downstream services only ever see masked data.

On time, every time

Filing to the regulator runs automatically every 5 minutes, so it does not depend on someone remembering.

Know when it breaks

Three Grafana dashboards on Prometheus metrics, with CRITICAL alerts on verification failures, because a silent failure here is the worst kind.

Built with

StreamingKafka, StreamSets
ServiceFastAPI, PostgreSQL, Docker
ObservabilityPrometheus and Grafana, 3 dashboards