Ready to learn Big Data technology? Browse Banking, Finance, and Insurance Industry Track courses developed by industry thought leaders and Experfy in Harvard Innovation Lab.
We are continuing to explore the time-tested rules that fintech app developers must adhere to. In Part 1, we focused on Security and Compliance, and API-led connectivity. In Part 2, we are going to discuss in detail the rules pertinent to such principles of fintech app developmentas Software Platform Scalability, and specific Domain Expertise.
Software platform scalability ensured by fintech app developers
Why fintechs need to be scalable ?
When banks and financial incumbents build a platform, they already have a customer base and know what loads they should expect. Whereas, all fintechs are born as tech startups and start small. Some of them die off. However, those ones that managed to survive, start growing, maturing, and scaling up. At least, they attempt to.That’s when software problems start snowballing. As the platform was not built will scalability in mind, the company finds it difficult to scale operations, development team, and as a result operational costs start skyrocketing.
To transition from ‘small’ to ‘big’, many fintech companies decide to adopt microservices architecture.
Source: App. Dev. Survey
There is a variety of approaches depending on specific business needs: you can build them from the very beginning, refactor the monolith into microservices, add new microservices to a monolith or split bigger microservices into smaller ones.
Whatever way a fintech decides to go, there is a range of challenges they have to overcome, and a set or rules they must follow:
1. Defining the responsibility areas of microservices
Divide the microservices so that each services covers only one functionality. However, don’t make them too fine-grained, as it will increase the performance overhead. The transitioning towards microservices should be done in small parts. Also, when implementing new functionalities, it is not recommended to attach them to a monolith even though it might be faster. Instead, organizations should gradually add new microservices and replace the monolithic code.
2. Automation test coverage to prevent defects while refactoring
Be careful when doing refactoring, as you can introduce new defects into the existing features. That is why you need good automatic test coverage before starting refactoring. That will enable you to minimize the number of bugs, reduce time to market, and let you release more frequently.
3. Ensuring fault-tolerant design of microservices
The design of microservices has to be fault-tolerant in case one of services is under heavy load and doesn’t respond. There are many ready solutions that can be used in microservices and other distributed systems. One of the most widely used tools is Hystrix (a library that ensures latency and fault tolerance in distributed architecture).
4. Automatic deployment of services
Continuous integration and continuous delivery go a long way to manage and streamline deployment of multiple services. Docker makes microservices easily portable and isolated. Kubernetes provides multiple features like horizontal scaling, service discovery, load balancing and so on.
5. Automatic logging and monitoring of microservices
Fintech app developers must ensure easily searchable logging and monitoring of the whole system, with automatic notifications of a service failure.
6. The tradeoff between consistency and availability
If we are talking about a financial ledger and a distributed architecture (well, generally if we are talking about a distributed architecture), another important aspect to heed on is the trade off between consistency and availability. If the consistency of the system needs to be strong, then availability of the system will decrease. But if we limit availability, then consistency will not be guaranteed immediately, but instead eventual consistency will be reached.
Specific domain expertise fintech app developers must have
Specific knowledge about fintech operations is a must for efficient fintech app development.
It includes legal and compliance aspects, understanding how different types of fintechs operate, background in finance and banking, and more.
Having talked with our fintech experts, we’ve outlined such rules of fintech app development regarding domain expertise:
7. Maitaining a financial ledger
Fintech developers should pay special attention to maintaining financial ledgers. Such ledgers must be preferrably written using ACID databases.(Atomicity, Consistency, Isolation, Durability). This set of properties of database transactions is intended to guarantee validity even in the event of errors, power failures, etc. Also, daily monitoring of the reconciliation of all payments is mandatory.
8. Considering the legal side of fintech
Though fintech is not as regulated as finance and banking area, not all operations with money in fintech can be done without licences. What’s more, different types of fintechs require different licences, and there are various regulations regarding fintechs that operate in different regions.
9. Different types of fintechs need to have their own domain experts
Specific domain expertise for fintech developers is preferable as fintech development entails using professional jargon and very specific terms and notions ( e.g. in currency exchanges), and it takes times to learn the ropes of it.
To ensure growth, fintechs need a reliable and easily scalable platform built in compliance with the best industry practices. We’ve collected 15+ rules for fintech app developers and grouped them according to 4 underlying principles. In Part 1, we focused on security and compliance, and API-led connectivity. In part 2, we dwelled on the rules related to software infrastructure scalability, and specific domain expertise.