An important part of software creation is an ability to continue functioning in an accurate way even when it is changed in size or volume. A highly scalable software would work correctly on a small set of databases as well as working well on a large set (say millions, or billions of records).
In this article, we will describe important attributes needed for correct System Performance.
Scalability — is an important attribute of any Enterprise Software that describes an ability of the system to grow and manage increased demand. Scalability is essential for financial services as the load on the system will imply its peak performance. If the load on the system exceeds its performance, the system’s clients will begin to lose profit from transactions.
Capacity — is a complex measurement of the maximum amount of data that can be transferred, which means the system facility to serve thousands of connections and transactions simultaneously per unit of time.
System Performance is usually measured in a number of transactions performed per some time unit (minute/hour/day/month).
By transaction, we mean the main business process for financial services. There are different transaction types:
- business transactions
- technical transactions
- status transactions
The aggregate speed of execution of different types of transactions determines the total system performance.
Business transactions are transactions that are responsible for the accomplishment of business processes. For example, wallet to wallet money transfer, merchant account payment inside the system, top-up, withdrawal, operations with payment cards.
3rd party business transactions — transactions responsible for the accomplishment of business processes with the use of external service providers. For example, wallet top-up using a bank card implies an internal replenishment transaction after receiving confirmation from a payment card processing provider.
Technical transactions — provide more complex business transactions.
One business transaction can consist of many technologies in the flow. For example, the business transaction Transfer — before performing the transfer operation, performs a check on the blocking of the sending and receiving accounts, checks the limits, checks the availability of funds, applies commissions and other predefined processes.
Status transactions — this type of transaction only returns the state of the object but does not change its contents. For example, checking the balance of the user, checking the account status, receiving news and notifications from the system.
How does Scalability works
on SDK Finance software?
Depending on the infrastructure, SDK Finance platform can handle different types of load capacity and performance. SDK Finance software is vertically and horizontally scalable and can be easily settled in case of increased traffic.
The speed of results output depends on the throughput capability of a chosen server. The network and the Internet provider channels between you and our test server.
The system can simultaneously process thousands of connection sessions and API calls for different types of transactions. Each type of processing transactions has different speeds.
Status transactions — work faster than all the others because they do not affect the state of the system and just represent its status. On the basic configuration, you can get more than 10,000 transactions per minute in dozens and hundreds of one-time sessions
Business transactions are more «heavy» and need more resources.
Every business transaction goes through many business logic layers such as limits, contracts, commissions, and so on.
On the basic configuration, you can get 3000–5000 transactions per minute.
These images demonstrate the work of a special framework that allows you to test applications for performance — JMeter.
SDK Finance also actively uses the BlazeMeter service when we need to simulate a really serious load from different geographically distributed access to the system.
Before running your own tests, update the Authorization parameter with the new TOKEN. New TOKEN can be obtained by calling API Authorization here.