Using proven and standard technologies that are inherently multi-threaded and stateless enables our platforms to perform in a predictable and scalable manner. The flexible design ensures that enhancements and tailoring remains easy and possible depending on the selected deployment.
Each component is designed to perform a specific and independent task and can be linked together in a given scenario. These tasks are co-ordinated asynchronously and locally; giving the user a fast turn-around whilst performing many tasks in the background which are usually left to an overnight batch (e.g. a backdated change to a rate will trigger recalculations in the background).
Clustering and Caching
The technologies used can be scaled up (bigger boxes) as well as horizontally (more boxes, clustering). Each request can be treated separately. Read-only caching is used in both client and server components.
Separation of Concerns
The Application is divided into modules that are responsible for certain tasks, the handling of protocols and transports are done separately from the enrichment and transaction state machine.