Sentinel is a portfolio/MVP fraud-risk platform designed to demonstrate modern backend engineering, reliability patterns, and event-driven architecture in a BFSI/fintech context.
In accordance with Sentinel's repository architecture (SENTINEL_Design_Decisions.md Section 27), the platform is structured into three independent logical repositories:
Sentinel/
├── sentinel-service/ # .NET 10 solution, API, workers, domain, persistence, messaging
├── sentinel-dashboard/ # Angular 21 & Material 3 Fraud Operations Console
└── sentinel-ml-service/ # Python data science, feature engineering, offline model training
Transaction Simulator (sentinel-service)
↓ HTTP POST
Sentinel Ingestion API (sentinel-service)
↓ ACID transaction
PostgreSQL + Outbox Table
↓ Outbox Publisher (sentinel-service)
RabbitMQ Exchange
↓
Fraud Worker (sentinel-service)
↓ Deterministic Rules + ML Inference
Risk Assessment Persisted
↓ Realtime Event
SignalR Hub
↓
Angular Fraud Operations Dashboard (sentinel-dashboard)
sentinel-service: Core runtime containing all .NET components (Sentinel.Domain,Sentinel.Application,Sentinel.Contracts,Sentinel.Infrastructure,Sentinel.Api,Sentinel.FraudWorker,Sentinel.OutboxPublisher,Sentinel.Simulator).sentinel-dashboard: Angular application representing the fraud operations console. It communicates exclusively via HTTP REST APIs and SignalR realtime events; it contains no C# dependencies and does not submit transactions.sentinel-ml-service: Independent Python environment reserved for dataset analysis and model training (deferred). Runtime inference is executed natively in .NET within the backend.