How We Built a FinTech Solution Boosting Database Performance [Case Study]

584 Views
|
20 Mar 2020
|
3 min
author avatar
Vitaly K.
Technical writer

Nobody loves freezes and long loading times. Being a software development company, we can't stand them either. Recently, we’ve decided to modify our financial CRM looking to solve two main problems: load time and navigation speed.

Here's what we're going to talk about:

Table of contents

In a nutshell, it was taking too much time to load tables and hop between data-filled pages in accounting software that we used. To solve those issues, we’ve built a database solution that’s capable of storing over 1 million records and loading them fast during page-to-page views. Here’s a prototype, test it on your own.

FinTech solution boosting database performance

Prototype’s capabilities

Project Challenges

We haven’t found any appropriate ready-made libraries as we needed a solution with a database, back end, and front end. There are some frameworks that could be helpful for us, but they load memory running in the background. In our solution, we wanted to focus on optimization and speed boost instead.

?

Learn how we address challenges in projects following our software development workflow.

Anyway, here are the main challenges we faced during development:

  • Advanced pagination
  • Filter and search
  • Caching

Let me catch you up:

Pagination

We had to know the overall number of records in order to figure out how many pages to display on the bottom panel to make the pagination work. The default number is 1 million. But when you enter a search query, the amount changes to the number of matching elements. We decided to call the count only when the search query changes. In other cases, the amount remains unchanged.

Filter and search

We’ve added a Covering Index to the database to let users search and filter information covering all fields. We used this data structure to avoid additional lookups to the table for getting requested data. In other words, it's another move needed to speed up the loading.

Caching

Caching is yet another solution to accelerate data loading. It caches queries on the back end to avoid loading the same data over and over again. This means that users get their data loaded even faster when making duplicate queries.

Tech Stack Used for This Project

We’ve used several technologies to make it work:

  • MySQL
  • .Net Core 3.1 for back end
  • Angular for front end
  • AWS EC2
  • AWS RDS
MySQL

It’s an open-source relational database management system backed by Oracle. MySQL works across all platforms including Linux, Mac, and Windows.

.NET

.NET is a framework developed by Microsoft. It’s designed for developing web and desktop applications.

Angular

Angular is an open-source web application framework developed at Google. It’s TypeScript-based and maintained by Google and community of individuals.

AWS EC2

Amazon Elastic Compute Cloud is a web service providing computer capacity in the cloud. In this project, we used AWS EC2 to host our app.

AWS RDS

Amazon Relational Database Service is a distributed relational database. It was used as a database for the project.

Tech stack we used to create this FinTech solution

Tech stack used for the project

Wrapping Up

This solution can be used for financial operations as in our case. Still, it’s useful for virtually any project as every database is being filled up with data over time. It'll especially be useful for projects that are heavily focused on statistics and analytics.

Got an idea?
We’ll help you with the tech part. Get free of charge tech consultation with our specialist.
Rate this article!
An image
An image
An image
An image
An image
(22 ratings, average: 4.55 out of 5)
Leave a comment
An image
Your message is checked by the moderator and
will add to the site ASAP
typos
Report a typo
Back to top