Wednesday 30 July 2014

Scalability by Parallelizability in Online payment gateway

Scalability and responsiveness in online payment gateway is not an option, it is a requirement. Some optional steps/process in a payment gateway performed in a parallel/asynchronous way can help in maintaining scalability of the system.  This parallelism will enable the system for betterment in latency and throughput. While some processes can only be performed in a sequential fashion, but the system designer should always check for processes which can be performed in an asynchronous way.

Following are some optional processes in an online payment gateway, which I think can be performed in parallel:
  1. Fraud and Risk Prevention check: A check made for detection of a possible fraud in the transaction under process

  2. Sending Email: Sending emails to buyers, merchants, self and any other third parties.

  3. Sending SMS: SMS to the buyer

  4. Dynamic currency conversion related processing: Dynamic currency conversion can sometime be performed in parallel

  5. Sending online notifications to merchants: Some payment systems send HTTPS notifications to merchants

  6. Account updater: When card details of the buyer has changed, and an update is required
  7. Tokenization/One-Click-Checkout process: Tokenization or one-click-checkout or easy checkout is sometime used to speed up the checkout process, and this is mainly achieved by storing the card details for future use

Follow Payment Technologies for more updates.

Thanks for reading. Feel free to comment

Thursday 24 July 2014

Batch modules in Payment gateway and technology


The major part of a payment gateway is the back-end and batch modules. In this blog I will mainly focus on batch modules in payment gateways, functions and one example of batch processing technology. Front end of payment gateway accepts online real time authorization requests, and after this the back-end finishes/completes the request. Batch modules in payment gateway mainly serve back office operations, analytics, reports, settlement/clearing and End of day processing. Let us we have a look at each of the functionality mentioned above.

  • Clearing & Settlement: This mainly involves transfer of funds from different entities like issuer to acquirer, payment gateway to merchant. It is mainly achieved by iterating over each of the online real time requests accepted from merchants and then creating a batch file, sending to acquirer/payment processor, receiving response file, parsing the response file and updating the database

  • Reconciliation & Reports: Merchants and other financial entities require different kind of reports in different kind of formats. For example daily/weekly/monthly transactional reports, totals of different kind of transactions and summary

  • Analytics: This mainly involves identifying different kind of parameters. For example, identification of potential business areas, who is doing what, what kind of transactions, is more from which merchant etc. Depending upon the flexibility and adaptability of analytics module, it can be much importance as an added service to merchants.

Technology selection for your payment gateway is of critical importance. The batch modules will be creating, parsing, sending/receiving and updating different file formats. Batch modules also perform database intensive operations, and would mainly run as scheduled tasks configured at particular time or internal of time.

Let us see why spring batch can be a module of choice. Spring Batch is a lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems. Spring Batch builds upon the productivity, POJO-based development approach, and general ease of use capabilities people have come to know from the Spring Framework, while making it easy for developers to access and leverage more advance enterprise services when necessary. It is intended to work in conjunction with a scheduler, not replace a scheduler.

Spring Batch provides reusable functions that are essential in processing large volumes of records, including logging/tracing, transaction management, job processing statistics, job restart, skip, and resource management. It also provides more advance technical services and features that will enable extremely high-volume and high performance batch jobs though optimization and partitioning techniques. Simple as well as complex, high-volume batch jobs can leverage the framework in a highly scalable manner to process significant volumes of information.


Spring batch can serve the following technical objectives:
  1. Batch developers use the Spring programming model: concentrate on business logic; let the framework take care of infrastructure.
  2. Clear separation of concerns between the infrastructure, the batch execution environment, and the batch application.
  3. Provide common, core execution services as interfaces that all projects can implement.
  4. Provide simple and default implementations of the core execution interfaces that can be used ‘out of the box’.
  5. Easy to configure, customize, and extend services, by leveraging the spring framework in all layers.

All existing core services should be easy to replace or extend, without any impact to the infrastructure layer.  Provide a simple deployment model, with the architecture JARs completely separate from the application.

Thanks for reading. Feel free to comment

Follow Payment Technologies for more updates.

Potential Micro-Services in a Payment Gateway

This post is particularly important for you if you want to: Do technology transformation to break a monolith payment solution to micoservi...