Solution
BharatPe approached Vidyayatan Infotech, a software service company that specializes in building microservices architectures for fintech applications. Vidyayatan Infotech has a team of experienced and skilled developers who use the latest technologies and best practices to deliver high-quality and customized solutions for its clients.
We proposed to build a microservices architecture for BharatPe’s payment processing system, using Java Spring Boot, MySQL, and Kafka. A microservices architecture is a design pattern that breaks down a large and monolithic application into smaller and independent services that communicate with each other through APIs.
This approach offers several advantages, such as:
- Improved scalability: Each service can be scaled independently according to the demand and load, without affecting the performance of the whole system.
- Enhanced reliability: Each service can be isolated and tested separately, reducing the risk of errors and failures, and ensuring faster recovery in case of any issues.
- Increased security: Each service can be secured and encrypted individually, preventing unauthorized access and data breaches.
- Faster development: Each service can be developed and deployed independently, allowing for parallel and agile development, and faster time to market.
We designed and developed four microservices for BharatPe’s payment processing system, namely:
- Payments Service: This service handles the swipe payment callbacks from the card network, the issuing bank, and the acquiring bank, and updates the transaction status and details in the database.
- Account Service: This service maintains the merchant account for pay-ins, pay-outs, interests and charges, and performs the necessary calculations and validations for each transaction.
- MDR Scheduler Service: This service calculates the 15 day old MDR transactions charges and applies them on the merchant account, according to BharatPe’s zero fee policy.
- Notification Service: This service notifies the merchants on the success or failure of their payments, using SMS, email, or push notifications.
We used Kafka as a message queue and a communicator between the different services, ensuring reliable and asynchronous data transfer and event-driven processing. The company also used MySQL as the database for storing and retrieving the transaction and account data, ensuring high performance and consistency.