One of the main challenges when dealing with Financial Data aggregation is to maintain reliability and be extremely fast in data processing. In other words, is hard to maintain support to all possible edge cases and handle all possible variations in bank accounts, bank behaviours and different paths to get the data and still do it in an acceptable duration of time for end-users.
As we grow in resilience, speed is the main challenge, since there are more edge cases to check every step in the way.
The technique - Dual connectors for every bank
With this challenge in mind, we noticed that most of the accounts that we connect follow the same path and the part of Flinks that was impacting the speed would be needed for less than 20% of the accounts, in average. That gave us an idea for the technique for having two different connectors for each Financial Institution: a fast and a resilient one.
The fast connector will be a speed optimized, oriented for the most common flows, with the focus on Authorizing the Financial Institution account as quick as possible. If this connection fails for lack of support, the Resilience Connector will come in place within the same session and using the credentials the end-user just entered. This connector is not as fast, but definitely will handle the current edge case.
Proof of Concept
The first Financial Institution that we decided to apply this technique was CIBC, since our average of Authorize time processing was above 60 seconds, which for us is more than uncomfortably high, since in realistic terms our goal is to have a complete Authentication process with the Financial Institutions under 15 seconds.
After a product development cycle with the proof of concept of this technique responding really well to our prediction in our testing, we decided to release the first bank connection to our clients in the version 1.39.0 of our API (Changelog here: https://changelog.flinks.io/changelog/1-39-0/)
Since its release in October 11th until the October 15th, the success rate for the Speed Connector vs the fall back to the Resilient Connector is better than previously expected. Less than 15% of the requests don't have a fast Authorize process, as we can see in our internal stats graph:
For the same period, we are able to see a huge improvement in the average elapsed time for the Authorize process. From around 100 seconds, we had a drop to less than 20 seconds, most of the time:
If you are wondering why we had a spike on the Elapsed Time on October 13th: This happened since, for a few hours, CIBC presented a slightly different page since they were having a maintenance, which was caught successfully by our Resilient Connector!
After successfully applying this technique, our team is working on Fast and Resilient Connectors technique for other Financial Institutions supported by Flinks. A lot of work is ahead of our Team, but the obsession for great results is what drives every single one at Flinks.