The Client

At Moneyou they believe that people know best what is good for them, even when it comes to money matters. That's why they never tell customers what to do with their money. They do provide overview, information and options so that everyone can make the right financial decisions. And can arrange it yourself - 100% online.

Moneyou started in 2001 as an online label of ABN AMRO. They are now a fully independent subsidiary for savings, loans, mortgages and recently payment. Simplicity, transparency and the endless possibilities of modern technology are what drives them. Just like the belief that the best products are created in collaboration with our customers. This led to the first online Do-it-yourself mortgage in the Netherlands in 2011 and in 2018 to the launch of their innovative Moneyou Go app and account. With the expansion to Germany, Belgium and Austria they have developed into a major player in the financial field.

The Project

The goal of the team SmartAccounts is to deliver smart features that empower customers to manage their money efficiently. We handled the landing page of the app the customers see when they log in. The landing page provides an array of critical information on the customer accounts, such as current account balance, recent transactions, number of payment cards attached to the account, etc., and the ability to configure them and to initiate new payments. To facilitate the landing page, the information must be sourced from multiple services within the ecosystem and also from third-party providers.

Information delivered on the landing page should be accurate, responsive, and available all the time. Our team innovated and used new technologies. We created a PoC for one of our services using AWS services. This is the first attempt in Moneyou to deploy to a public cloud. Now more critical services are on their way to being migrated to AWS. We designed the backend APIs and implemented microservices to retrieve and aggregate the required landing page information. We further hardened it to meet banking compliance requirements by making them resilient to failure, securing them, and making them highly available. We deployed the application in the Kubernetes environment to scale horizontally and to guarantee the availability of the applications to recover from resource failures. Failures could be due to network or application errors or to third-party services being down.

Technologies

  • Java 8
  • Spring framework
  • MySQL database
  • Apache Kafka
  • Junit 4
  • Chef
  • Gitlab, Docker, Kubernetes

For resiliency, we implemented a custom retry mechanism to reprocess failed messages. Based on the type of failure, the retry mechanism will process the message at a configurable periodic regular interval and counter application errors and parked non-recoverable errors in dead-letter queues to be monitored and reconciled. We further added monitoring by having health checks on the endpoints, JVM metrics of the applications, and error monitoring logs.

Results

We have developed a mission-critical microservices to deliver and support the SmartAccount project. We were taking the end-to-end ownership of five microservices delivered from building, deploying, and maintaining them in production. One of the functionalities we delivered is synchronizing incoming credits between systems and monthly statement generation. Furthermore, we designed and implemented an annotation-driven generic retry mechanism using Kafka and Spring for better error handling and improved resilience for services dealing with credit synchronizations.

Adding the retry mechanisms improved automatic recovery of transient errors, resulting in fewer alerts in production. Users can now download their monthly statements of transactions generated on the fly as a pdf. The Moneyou Go app has 4 out of 5 stars in the Google Play Store and a 4.4/5 score in the Apple store. The app is steadily gaining popularity and an increasing number of users in NL and DE.