- AUTHOR Yogesh Shinde
- PUBLISHED ON August 13, 2020
Architecting a Smooth Digital Payment Experience
Online payment is no more a novel concept, nor the digital payment through mobile apps. A great digital payment experience still means smooth, glitch free, successful transaction at any hour of the day. This article narrates how Niyuj architected a smooth online experience for a leading payment service provider, by minimizing the peak transaction processing time and facilitating scalability in deployment.
Our customer, a leading online payments service provider, handles thousands of payment requests over the period of a day. As a greater number of bank account holders are preferring the online mode, the payment gateway needed more processing time due to increased traffic. This resulted in more failed transactions and dissatisfaction among the end users. Niyuj analyzed the customer requirements and devised an appropriate solution.
Deployment Scalability: Our customer basically needed to maintain a smooth payment experience for the end users. As the end user traffic would increase during certain duration of the day, the gateway would need to step up the performance to address the increasing load. On the contrary, once the traffic would reduce, the gateway would need to step-back and go back to the default transaction capacity. Customer needed a deployment environment that would intelligently step-up and step-down to maintain best response time at any hour of the day.
Transaction Processing Time: Customer’s existing environment was designed to handle 150 transactions per second, which would take average 10-30 seconds for every transaction. With increase in traffic, the processing time would stretch to 1 minute or more. Customer’s existing deployment environment was not flexible to step-up and step-down the processing capacity based on the traffic patterns.
Niyuj devised a solution as detailed below:
Kubernetes-based deployment architecture: provided the flexibility of automatically scaling up and down, based on the traffic. Niyuj architected the solution based on Kubernetes as the system provided a facility to configure auto scaling of the deployment environment based on criteria such as number of transactions, memory utilization and the number of users. Once configured, the system would evaluate the traffic based on pre-defined parameters and make changes to the deployment automatically.
Kubernetes-based, AWS-enabled horizontal scaling: provided scalability to address the requirement of increased traffic. As the traffic would increase during certain time of the day, Kubernetes architecture would create clones of the payment solution deployed on an application server. These clones along with the original application server would in turn balance the transaction load among themselves. This facility would boost up the processing capacity from 150 transactions per second in the default state to 5000 transactions per second during the peak traffic hours.
AWS-based load balancing: helped in monitoring the system performance and kept a tab on the total cost of deployment. As the customer needs to pay hourly premium fee for the Kubernetes based deployment, it was important to ensure that the facility was utilized only when needed and disabled when unnecessary. The load balancers and automated scaling-down helped in achieving this goal. The system would quickly create more clones and maintain the scaled-up deployment as the load would increase during the peak hours. On the other hand, when the traffic would dwindle down, the clones would be disabled, and the system would default back to the single application server. Thus, the system would operate at the minimum cost for the most part of the day.
Transformation of the premise-based monolithic architecture to cloud-based, modular, microservice-based architecture increased the maintainability and portability of the solution.
- Minimized transaction time to the tune of 70 to 80 % during the peak hours helped in maintaining high customer satisfaction levels and resulted in higher customer loyalty.
- Cost optimization achieved through scalable deployment ensured more value realized for the money spent
- Parameter based configuration facility allowed more room for calibration based on various performance requirements
- With the upgraded Kubernetes based architecture and continuous performance monitoring, the customer could achieve higher efficiency in utilizing the existing system resources.
- Improved response time also helped the customer to comply with norms and SLAs (Service Level Agreement) mandated by the regulators