In general terms, resilience is the ability to withstand adversity and bounce back from difficult life events. Regarding database systems, it means having your database always available or recovering quickly from unexpected business disruptions such as hardware failure, power outages, or cyber-attacks.
Over the years, financial institutions worldwide have experienced service downtime, some of which could be attributed to the level of resilience built into the system. It is, therefore, necessary to ensure that databases for financial applications are reliable, scalable, and resilient to meet the demands of the users.
There are many strategies to ensure databases can withstand unexpected events, and some of them are as follows:
Scalability
The database system should be designed with a growth mindset, which means the database size can start small but will not remain small. The database software for any application in a financial organisation should be able to scale to handle the growth of the data.
Having this in mind should guide the approach to adopt in the event of the requirement to scale up or down the resources allocated to the database system. The setup should allow resources to be increased with little or no downtime.
To minimise the disruptions that could be attributed to adjusting resource allocation, such as CPU, memory, and disk should be configured to accommodate online adjustments where possible.
Workload Distribution
Most of the databases within the financial system are required to respond to user requests in real-time. These request thresholds can be as low as milliseconds, which means the database design should ensure the thresholds set to complete part or all transactions are met.
Also, backup operations are resource-intensive activities that can affect the performance of the database, and where possible, this operation should be moved to a standby database.
Task Scheduling
Within a financial organisation, there are a series of simple and complex tasks that must be carried out to ensure the applications work seamlessly. Some of these tasks can be in the form of scheduling a job that will run at a particular period to initiate, pause, or complete a transaction.
The sequence or timing of tasks directly impacts whether the task will achieve the desired outcome in the most effective way. To have a stable database system, it is necessary to periodically review automated processes versus real-time processes and adjust as appropriate to reduce impacts that can lead to service disruption.
Availability
The databases for financial applications are always expected to be available, which means that the database should be designed with the capability that will enable the system to run with little or no downtime in the event of any failure.
Several strategies can be considered to have a database system that is highly available to withstand service disruptions. For high availability, the database system should have multiple nodes that can be active or passive at the same time or be available in the event of the failure of any of the nodes within the setup.
This setup should also ensure that the failure of any of the nodes of the database setup does not lead to prolonged downtime on the application.
An example of a high-availability solution that can be implemented for databases within a financial ecosystem is Microsoft SQL Server Always On, it has the capability to automatically switch from one node to another when one of the participating nodes is not available, and the application continues to run without the need to make changes to the application.
Disaster Recovery
This focuses on returning the database to its operational state after a disaster with minimal data loss. Like many organisations, the integrity of financial institutions’ data is critical to enhancing customers’ trust and building credibility.
The disaster recovery approach to be adopted for financial system databases should have minimal Recovery Time Objective (RTO) and Recovery Point Objective (RPO). The organisation should have a robust business continuity plan that captures various scenarios of downtime or disruptions and develop strategies to restore the system within a reasonable timeframe. The disaster recovery scenarios should be simulated periodically to accommodate changes, leading to an efficient and effective process.
Cloud Adoption
Database systems’ resilience can be enhanced by the flexibility, scalability, and availability offered by cloud computing.
To guarantee the stability and dependability of their applications, financial institutions can utilise cloud-based services like Amazon AWS, Microsoft Azure, Google Cloud, and others for database creation or migration.
For most of their service offerings, cloud providers offer availability SLAs of above 99%, with redundancy built across many geographic sites.
In conclusion, databases are critical assets in a financial institution, and proper attention should be given to ensure that the databases are set up to accommodate unexpected failures. Some of the strategies above may come with additional costs to the organisation. However, the outcome of implementing them can bolster their reputation as having a resilient system.