Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JPMorgan Chase & Co. Advanced Software Engineering Simulation

Backend transaction-processing system built using Spring Boot, Apache Kafka, REST APIs, H2 Database, Maven, and JPA as part of the JPMorgan Chase & Co. Software Engineering Virtual Experience Program on Forage.

Overview

This project simulates a scalable financial transaction-processing backend system capable of:

  • Receiving transactions asynchronously using Apache Kafka
  • Validating and processing transactions
  • Persisting transaction records using H2 Database + Spring Data JPA
  • Integrating with external REST APIs
  • Exposing balance APIs through Spring Boot REST Controllers
  • Implementing distributed systems concepts and event-driven architecture

Tech Stack

Backend

  • Java 17
  • Spring Boot
  • Spring Data JPA
  • Apache Kafka
  • REST APIs
  • Maven

Database

  • H2 Database

Concepts

  • Distributed Systems
  • Event-Driven Architecture
  • Transaction Processing
  • REST Integration
  • Asynchronous Messaging
  • Fault Tolerance

Features

Kafka Integration

  • Kafka listener consumes transaction events asynchronously
  • Topic-based event processing
  • JSON transaction deserialization

Transaction Validation

  • Validates sender and recipient accounts
  • Prevents invalid balance transfers
  • Updates balances atomically

Database Integration

  • H2 in-memory database integration
  • JPA entity persistence
  • Transaction record storage

Incentive API Integration

  • Consumes external REST incentive service
  • Processes incentive rewards for transactions
  • Updates recipient balances accordingly

Balance REST API

  • GET /balance?userId={id} endpoint
  • Returns user balance as JSON
  • Default balance handling for invalid users

Project Structure

src/main/java/com/jpmc/midascore
│
├── entity/
├── foundation/
├── repository/
├── BalanceController.java
├── KafkaTransactionListener.java
└── RestTemplateConfig.java

How to Run

Clone Repository

git clone https://github.com/karthikrshet/forage-midas-JPMorgan.git
cd forage-midas-JPMorgan

Configure Java

Install:

  • Java 17
  • Maven

Verify:

java -version
mvn -version

Run Incentive API

cd services
java -jar transaction-incentive-api.jar

Run Application

./mvnw spring-boot:run

Run Tests

./mvnw test

Key Learnings

  • Backend system architecture
  • Kafka-based asynchronous processing
  • Spring Boot REST API development
  • Database integration with JPA
  • Distributed systems concepts
  • Transaction consistency and validation
  • REST service integration

Certification

Completed through:

  • JPMorgan Chase & Co.
  • Forage Virtual Experience Program

Author

Karthik Shet

Software Engineer | Backend & Full Stack Developer

About

JPMorgan Chase & Co. Advanced Software Engineering Simulation

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages