The TPS is an transactional database application that provides distributed, fault tolerant, network-split resistant, performant, transactional intermediary processing. It also guarantees data locality for storing customer objects which allows TPS to be easily scalable and maintainable. TPS is supported following backends:
|1||sql transactional processing;|
TPS is based on KVS and CR. Rules for TPS are to be defined using UPL language.
All customers of bank are being grouped or sharded using custom hash function that is known to be linear and consistent. This function allows TPS to store all customer information for a given master of its key on a single node. Thus all TPS operations on transactions, cards, account of a given customer are passed to a hash function with a same customer ID key. In TPS all properties of a top customer object with the same key are stored in the same VNODE.
All interface operations and application data are stored and being read from Riak TPS Ring, which is in fact Riak Core application. Each VNODE should be treated as Bank department or isolated Bank part which could be detached to other place or Data Center. Each Riak Core VNODE TPS application also has access to its SQL warehouse, the primary source of transactions.
Here we define the formula of expected Transactions per month, that is the source for all system configuration. Here is example:
The operational data is fixed. E.g. we have 30M customers. Consider each customer performs 10 transactions in a month, thus we have 300M transaction. Each transaction has 2K in its size. So wee need 600G space of a cluster in a month. After each month we could outsource this data or even reduce it by cutting the tails of transactions list. Also these 600G can be divided by the number of nodes with accuracy to a coefficient of replication for TPS Ring. For SQL warehouse we double its size for SQL warm stand by failover. Also the number of VNODEs in TPS Ring is exactly the number of failover SQL instances.
|CHARGE||unconditional INSERT and head UPDATE|
|inside TRANSACTION, Cache Write-Back|
|WITHDRAW||conditional INSERT, based on last known|
|amount of latest customer transaction,|
|and chain root UPDATE inside TRANSACTION,|
All SQL Operations also perform write backs to TPS Cache, which is backed by Riak.
— Retrieval Transactions for an Account
— Display Accounts for a Customer
— Display list of Cards for a Customer
— Retrieval of details of an TPS object
— Cutting Tails in Transactions list
— Perform Recalculation of UPL rule for a Time Range
— Adding/Removing Nodes
— customer: basic bank client profile
— account: IBAN identified bank account
— card: EMV issued card
— transaction: tracking record for beneficiary and subsidiary
— cashback: dfferent programs for credit transactions
— program: UPL encoded deposit or credit program