How renan-lab/fraud-analysis-go works
This Go service accepts financial transactions over HTTP, validates and publishes them to Kafka, then a worker combines fraud rules with account/card history in Redis and publishes approve/review/block decisions. A simulator can generate realistic or adversarial traffic and record ground truth; an evaluator compares that truth with analyzed events and reports quality metrics and gate failures. The graph preserves these distinct product stages and key platform dependencies. Some subsystems are represented by their exact directories because their implementation was not sampled; their links are limited to documented or excerpted relationships.
Main entry points: service.go Analysis Service · worker/main.go Analysis Worker · simulator/main.go Simulator CLI · routes.go HTTP API
Components 25
Transaction Ingestion
- HTTP API
cmd/api/routes.go - Request Handler
internal/ingestion/handler.go - Ingest Service
internal/ingestion/service.go - Received Event
internal/events/transaction_received.go
Fraud Analysis
- Analysis Worker
cmd/worker/main.go - Event Consumer
internal/analysis/consumer.go - Analysis Service
internal/analysis/service.go - Fraud Rules
internal/analysis - Feature Store
internal/analysis/featurestore_redis.go - Analyzed Event
internal/events/transaction_analyzed.go
Traffic Simulation
- Simulator CLI
cmd/simulator/main.go - Traffic Generator
internal/simulator - Traffic Scenarios
internal/simulator - Traffic Sender
internal/simulator - Truth Writer
internal/simulator
Decision Evaluation
- Ground Truth
internal/groundtruth/record.go - Evaluator CLI
cmd/evaluator/main.go - Evaluation Service
internal/evaluation/service.go - Quality Metrics
internal/evaluation - Evaluation Report
internal/evaluation/report.go
Shared Infrastructure
- Kafka
- Redis State
- Kafka Client
internal/platform/kafka - Redis Client
internal/platform/redis/client.go
Other components
- Transaction Client
Connections 28
- Transaction Client → HTTP API: submits transactions
README.md - HTTP API → Request Handler: routes requests
cmd/api/routes.go - Request Handler → Ingest Service: ingests valid transactions
internal/ingestion/handler.go - Ingest Service → Received Event: constructs event
internal/ingestion/service.go - Ingest Service → Kafka: publishes event
internal/ingestion/service.go - HTTP API → Kafka Client: configures producer
- Analysis Worker → Kafka Client: configures consumer
cmd/worker/main.go - Analysis Worker → Redis Client: connects Redis
cmd/worker/main.go - Analysis Worker → Analysis Service: constructs service
cmd/worker/main.go - Analysis Worker → Event Consumer: wraps service
cmd/worker/main.go - Kafka → Event Consumer: delivers received events
README.md - Event Consumer → Analysis Service: handles event
internal/analysis/consumer.go - Analysis Service → Feature Store: loads and records features
internal/analysis/service.go - Analysis Service → Fraud Rules: evaluates rules
internal/analysis/service.go - Feature Store → Redis State: reads and writes state
internal/analysis/featurestore_redis.go - Analysis Service → Kafka: publishes decision
README.md - Analysis Service → Analyzed Event: constructs decision event
internal/analysis/service.go - Simulator CLI → Traffic Generator: creates generator
cmd/simulator/main.go - Simulator CLI → Traffic Sender: selects sender
cmd/simulator/main.go - Simulator CLI → Truth Writer: creates optional writer
cmd/simulator/main.go - Traffic Generator → Traffic Scenarios: generates scenario traffic
- Simulator CLI → Ground Truth: writes truth records
README.md - Traffic Sender → HTTP API: sends HTTP traffic
README.md - Evaluator CLI → Evaluation Service: runs evaluation
cmd/evaluator/main.go - Evaluator CLI → Ground Truth: loads truth
cmd/evaluator/main.go - Evaluator CLI → Kafka: reads analyzed events
README.md - Evaluation Service → Quality Metrics: computes quality metrics
README.md - Evaluation Service → Evaluation Report: returns report