This repository contains my implementation of Midas Core, developed as part of the JPMorgan Chase & Co. Advanced Software Engineering Virtual Experience Program on Forage.
The project simulates a real-world, production-style backend system responsible for ingesting, validating, processing, and exposing financial transaction data using modern backend technologies.
Midas Core is a Spring Boot–based microservice that:
- Consumes high-volume transaction messages from Apache Kafka
- Validates and persists transactions using Spring Data JPA
- Maintains user balances in a relational database
- Integrates with an external Incentive REST API
- Exposes a REST endpoint for querying user balances
- Is fully verified through automated and debugger-driven test suites
The system follows an event-driven architecture and demonstrates service-to-service communication, persistence, and API design.
- Java 17
- Spring Boot
- Apache Kafka
- Spring Data JPA
- H2 In-Memory Database
- REST APIs (RestTemplate)
- Maven
- JUnit & Embedded Kafka for testing
- Configured Spring Boot project with required dependencies
- Verified build and test environment using Maven
- Implemented a Kafka listener to consume transactions from a configurable topic
- Used embedded Kafka for test-driven validation
- Deserialized messages into domain-level
Transactionobjects
- Modeled relational entities using JPA
- Validated transactions based on user existence and balance constraints
- Persisted valid transactions and updated sender/recipient balances
- Discarded invalid transactions without modifying state
- Integrated an external REST-based Incentive API
- Posted validated transactions and processed incentive responses
- Applied incentives only to recipients (not senders)
- Persisted incentive amounts alongside transaction records
- Implemented a Spring REST controller exposing
GET /balance - Returned JSON-serialized balance responses
- Defaulted balance to
0for non-existent users - Configured application to run on port 33400
http://localhost:33400/balance?userId=
{
"balance": 1234.56
}JPMorgan Chase & Co. – Advanced Software Engineering Virtual Experience https://www.theforage.com/simulations/jpmorgan/advanced-software-engineering-r0fm