The fintech market is highly reliant on secure, reliable technology. Aside from protecting their users against malicious intent, companies that offer financial solutions must ensure that their applications are free of errors, technologically up to date, and capable of handling spikes in traffic. These criteria make Ruby on Rails the perfect development framework for fintech.
What RoR offers fintech – the theory
Ruby on Rails is well-known as a tried and true solution for fintech, or any other company which prioritizes security and stability. RoR has been on the market since 2004, which has given it the time needed to work through any issues, develop a strong community, and provide features users asked for. It’s also constantly being improved – the latest, seventh version of RoR was released in February 2022.
Several big players on the fintech market use Ruby on Rails to overcome unique challenges. Examples include Coinbase and Stripe.
Web applications in the fintech sector must resist various targeted attacks, including cross-site scripting or request forgery, SQL injection, command injection, clickjacking, and others. On top of that, fraud protection is often required to ensure the security of users’ funds. Ruby on Rails is equipped with mechanisms geared towards preventing common attacks.
For example, there are gems (libraries) for building effective authentication protection. Because each gem is a framework of a solution, many of the community-approved best practices are included within it. The Rails security guides can also be a big help.
Payment processing and similar features require many concurrent requests. To deal with this challenge, it’s important to maintain a tight, efficient codebase. Ruby comes with a set of best practices and assumptions that naturally guide developers towards creating high quality code. Experience with Ruby usually comes with many good habits.
Fintech apps can benefit greatly from well set up, effective analytics. However, processing high volumes of data means that your app will need to offer exceptional performance. While Ruby will never be as performant as compiled languages such as Go, its strength is that it’s very easy to integrate with other technologies. Mission-critical parts of the app can be written in another language, while the rest is built with RoR. This way, companies can achieve top performance without sacrificing development speed or accruing high development costs.
The Ruby programming language was created to resemble natural language as much as possible. This makes it easier to read and understand. The resulting practical benefit is particularly relevant for large corporations with long-term projects. The inevitable team rotations or developers inserted through team extension can understand the old codebase comparatively easily. This greatly improves the maintainability of Rails applications.
Rich library ecosystem
Ruby on Rails comes with a number of libraries dubbed gems. Each gem provides a solid framework for a solution such as account authentication or price calculation. They can be inserted into a project, adjusted to meet its specific requirements – and that’s it. No need to write a common piece of code from scratch, no need to reinvent the wheel. Additionally, the most popular and often-used gems have been implemented in hundreds if not thousands of projects. This means they have been battle-tested under a number of circumstances, and are less likely to cause problems.
As an example, take a look at RubyMoney, which solves the common challenge of handling currency conversions, where values need to be rounded up or down. Or Business Days, which helps financial apps mimic the opening hours of real banks. While each transaction has a certain deadline for processing, off-days are not counted towards it. This can be important in the case of large transactions which require in-person confirmation from the account holder (e.g. via telephone). Additionally, it’s often best to process transactions at times when someone at the company is present and ready to react to any unforeseen issue.
A case of the largest global fintech platform built with Ruby on Rails
One of our clients, a major fintech company, began cooperating with us when they needed to improve the aggregation and processing of events related to transaction security. They wanted to include event summaries in transaction reports. Doing so allowed a security-focused department of theirs to generate revenue through their services, as they are now well-documented in reports, and, therefore, billable.
These days, that functionality remains useful and only requires maintenance or occasional upgrades. Our client appreciates RoR’s effectiveness, and uses it in various other ways, such as:
- Managing their database – RoR helps them archive records with specified retention policies;
- Integrations – RoR and Kafka work very well together;
- Staged rollouts with the use of feature flipping for groups of customers – when a new feature is introduced, it’s done only for a selected group of users. This limits risk, allows for gathering real user feedback, and makes unexpected issues easier to handle.
Using RoR to support a major player on the fintech market
Let’s take a look at practical examples of what Ruby on Rails can do for fintech platforms. The first one is metaprogramming used for dynamically extending reports. In the case of our client, the resulting code effectively writes itself. A given type of event is configured so that adding a new event field results in the following:
- The code automatically downloads transactions and events,
- It puts them into reports, helping generate revenue,
- The entire functionality is meta programmed to write itself.
Another example is an improvement that our client plans to implement soon: Kubernetes migration. Today’s DevOps trends enforce a certain standard of handling infrastructures. Our client’s app, as a long-standing solution with contributions from multiple developers, is not adjusted to that standard. Therefore we want to move it to Kubernetes and make it a more modern solution. This involves managing risks related to service continuity and those typical for a long-running process.
A fintech dream team
Overcoming challenges such as those described above was possible only because our team includes senior-level Ruby on Rails developers with deep fintech experience. Thanks to them, we can maintain service continuity through numerous challenges. The team, despite being dispersed, is capable of designing very complex features and extending a huge codebase. And thanks to our experience, we can mitigate many domain-related or technical issues ahead of time, reducing risks and lowering maintenance costs.
If you’d like to find out more about the inner workings of fintech apps to prepare for your next project, or are simply looking for an excellent RoR team, let us know. We’re always happy to offer advice and consultations.