PayU launched a configurable marketplace in new geographies and centralized all the operations with the help of Knoldus API solution.
Website : https://corporate.payu.com/
Technologies Used : Functional Java, AWS Lambda , AWS State Machine, AWS S3, AWS SNS and Dynamodb
Domain : Payments
PayU is a leading financial services provider in global growth markets. They have expertise and heritage in cross border and local payments. They also offer multiple services to both merchants and consumers. The innovative technology, which is developed in-house as well as through investments and strategic partnerships, empowers billions of people and millions of merchants to buy and sell online, extending the reach of financial services.
The Challenge :
As a part of this project we have to deliver a Standardized Global Solution for Merchant Management, linking existing PayU Global Products, in order to support marketplace product offering. At the start of the project PayU has local products for every geography they operate in and it becomes very difficult to maintain and operate all the solutions. The other problem was that if they have to enter a new market then they have to build the whole solution from scratch which increases their turnaround time substantially. The major problems that they were facing is mentioned below
- No Unified or Standard Solution.
- Maintaining different products for each geography.
- Local solutions are expensive to develop and are not scalable.
- No common platform for the current solutions which are built on old technology stack.
- Global Merchants can not use these solutions as they have to integrate with multiple systems.
Our Solution :
Knoldus worked closely with the PayU team and helped in building the unified API that can replace all the existing solutions . Some of the crucial functionalities that were developed are listed below:
- Automatic Onboarding and verifying of sub-merchants (including IBAN for payouts).
- Multi-Basket purchases (multiple sub-merchants) with different marketplace Fees.
- Lambda functionalities implemented with Functional Java and Scala
- Fee split between marketplace and sub-merchants based on configurations.
- Configurable Marketplace and Merchant contract and payout terms.
- Automatic payment of the payouts as per the contract to sub-merchants of Marketplace.
- Integrating with the current systems to get the existing data and contracts.
- Automate and develop the CI/CD pipeline for faster time to production.
Payu is a payment solution provider and this solution was particularly built for Marketplaces which have different infrastructure needs at different periods of time e.g. during holidays or festive seasons there will be a lot of activity and transactions. Hence the solution needed to scale up significantly during the peak season and down scale during the lean period. After executing some of initial poc we narrowed down on Serverless Computing as the preferred choice. Serverless computing allows us to build and run applications and services without thinking about servers keeping us focussed on development of functionality. With this approach we worked on developing individual AWS Lambdas and in order to make the solution more cost-effective, we combined various Lambdas in AWS Step Functions, building a simple state machine to orchestrate the flow. Step Functions coordinate the components of distributed applications and microservices at scale, using visual workflows that are easy to build.
The Figure below illustrates one of the flows that was designed for this case study, the various lambdas are combined using the Step Functions and these state machines were triggered using another trigger function lambdas which were called whenever there is a purchase request. We made sure that Lambdas perform one and only one function at a time to increase their reusability. DynamoDB was used for storing the data whenever required and for 3rd Party processing we used webhooks to get the status updates in an async way.
We also used DynamoDB Streams to create event driven flows that were required for analytics and other sidecar operations like Notification Service and storing the operational history related to purchase.
The solution helped PayU to reduce the cost of launching in new geography by 50%. The whole solution was build on the concept of serverless computing (AWS lambdas) making it easier to manage and scale due to dynamic allocation of machine resources based on the load. The payment business is heavily dependent on contracts and local bye laws, hence, we greatly focused on configurability and customizability of the product to suit the needs for a global solution. The Global Marketplace solution can now be adapted by any Marketplace to use PayU as a payment solution provider with ease.
Get In Touch
If you are looking to build a Reactive Product with Scala, Functional Java, Spark, or a Big Data Solution leveraging Spark and Lightbend platform, Knoldus is here to help. We are a proven, experienced Certified Lightbend Partner, available for partnering to make your product a reality. Get in touch with us here, Follow us @Knolspeak or just send us an email on firstname.lastname@example.org.