System Architecture

Architecture

Local-first pipeline with an evidence-based demo footprint. Heavy services run locally; hosted demos stay lightweight.

Data Flow

Pipeline Overview

Transaction
Card
Device
Location

Kafka + Flink CEP

Event streaming & pattern detection (local)

Feature Store

Feast + Redis cache

ML Scoring

XGBoost serving, GAT training

Neo4j Analysis

PageRank + communities (local)

Dashboard + SHAP + RAG

Case queue, explainability, copilot

Architecture Layers

Presentation Layer

Next.js

Next.js

Next.js 16 App Router

React 18

React 18

React 18 with hooks

D3.js

D3.js

Network visualization

Tailwind

Tailwind

Utility-first CSS

API Layer

FastAPI

FastAPI

High-performance Python API

GraphQL

GraphQL

Strawberry schema + resolvers

Redis

Redis

Response caching & sessions

Streaming Layer

Kafka

Kafka

Event streaming platform

Flink

Flink

CEP fraud patterns

Feast

Feast

Online feature serving

ML Layer

XGBoost

XGBoost

Gradient boosting ensemble

PyTorch

PyTorch

Graph Attention Networks

SHAP

SHAP

Explainable AI

MLflow

MLflow

Experiment tracking

Data Layer

PostgreSQL

PostgreSQL

Transactional data

Neo4j

Neo4j

Graph database

Redis

Redis

Feature cache

pgvector

pgvector

Vector search (Postgres extension)

Infrastructure

Docker Compose

Docker Compose

Local compose stack (12 services)

Prometheus

Prometheus

Metrics collection

Grafana

Grafana

Dashboards & alerts

Capabilities by Role

Data Engineering

  • - Kafka ingestion flow
  • - Flink CEP patterns
  • - Spark feature jobs

ML Engineering

  • - XGBoost scoring
  • - GAT training scripts
  • - SHAP explainability

Full Stack

  • - Next.js dashboard
  • - GraphQL queries
  • - D3 network graphs

MLOps

  • - MLflow tracking
  • - Prometheus metrics
  • - Docker Compose stack

Free-tier Demo Targets

Planned deployment map

Supabase

Postgres + pgvector for hosted demo data

Upstash

Serverless Redis for cache and rate limits

Railway

API + frontend hosting on free tier

Heavy services (Kafka, Neo4j, Flink) stay local for the full pipeline.