Real-time transaction monitoring and fraud detection system built with Spring Boot and Kafka Streams.
This service processes financial transactions in real-time to detect potentially fraudulent activities using stream processing and machine learning techniques.
- Spring Boot 3.4.2: Core framework
- Kotlin 1.9.25: Programming language
- Apache Kafka: Event streaming platform
- Kafka Streams: Stream processing library
- gRPC: High-performance RPC framework
- Elasticsearch: Search and analytics engine
- Protocol Buffers: Data serialization
- Real-time transaction processing
- Stream-based fraud detection
- Multiple fraud detection patterns:
- High-amount transactions
- Velocity checks
- Geographic anomalies
- gRPC and REST API endpoints
- Kafka-based event streaming
- Elasticsearch integration for transaction indexing
The service follows a stream processing architecture:
- Transaction ingestion via REST/gRPC
- Kafka-based event streaming
- Real-time fraud detection using Kafka Streams
- Alert generation for suspicious activities
- Transaction indexing in Elasticsearch
- POST
/api/transactions
: Submit new transaction - GET
/api/transactions/{id}
: Retrieve transaction details
SendTransaction
: Submit new transaction via gRPCGetTransaction
: Retrieve transaction details via gRPC
The service supports configuration via:
- Application properties
- Environment variables
- External configuration server
- Prerequisites:
- JDK 17
- Apache Kafka
- Elasticsearch
fraud detection, real-time processing, kafka streams, spring boot, grpc, elasticsearch, financial transactions, stream processing, kotlin