Cassandra-Powered Payment Services App Used by Over 80% of Denmark
MobilePay migrated from mainframes to the cloud with microservices plus a Cassandra backend to stay ahead of the competition and retain its market advantage, attracting talent at the same time to grow the developer team.
$26K average money transfers per minute
9 out of 10 smartphones in Denmark running the app
Formed in 2013 by Danske Bank, Denmark’s largest bank, MobilePay supports consumer-to-consumer and consumer-to-business payments.
After a successful launch and marketing campaign, the MobilePay IT team saw customers registering for the app at a rate faster than expected and than its mainframe applications and traditional database systems could handle. Unable to scale gradually, the IT team was faced with a dilemma: How to support the demands of a rapidly growing customer base while maintaining service levels and delivering new functionality.
“The pressure on the team was how to improve our service delivery capabilities and meet customer expectations around availability of our applications,” said Brian Nielsen, lead software architect at MobilePay. “We could not have any downtime or interruption to services, and we wanted to get feedback from customers faster as well. All of this was difficult to deliver using those traditional mainframe-based monolithic applications that were in place. We knew that we needed a new approach and a different mindset.”
Nielsen and Danske Bank Development Manager Rune Birkemose Jakobsen defined the organization’s requirements and devised a plan to meet those requirements using new technology.
“Cloud had great potential for us, but the central IT team did not feel comfortable in deploying to a public cloud service,” Jakobsen said. “So we decided to implement a private cloud deployment based on VMware. From an application perspective, we wanted to use microservices to design and build applications with an event-based architecture. This would help us remove any single point of failure, and make it easier to add and remove functionality over time. Alongside these decisions, we had to look at our approach to data.”
For MobilePay, the data side was a critical component of the migration from mainframe systems. Any replacement system had to provide continuous availability, handle potentially millions of transactions per minute, and be able to work alongside the new distributed application model that the team wanted to implement. This led MobilePay to Apache Cassandra™.
“We wanted to implement a distributed database that would fit with our microservices-based application strategy and that would be able to handle the availability and scalability needs of the applications too,” Jakobsen said. “Cassandra matched this model perfectly. We considered other approaches based on SQL Server, but the distributed and always-on nature of Cassandra was a far better fit.”
Nielsen and Jakobsen worked with the MobilePay IT team to plan the migration to the Danske Bank private cloud. This involved putting together an application stack that could support the migration, as well as the principles and workflows that would be required to run the operations over time.
“This model is important to us at MobilePay as it gives us our path for running our applications and delivering new features for the business—this is really valuable to us as a team,” Jakobsen said. “However, this also forms the blueprint for other teams across Danske Bank in how they can build their modern applications and take advantage of cloud and microservices in the future. Getting the planning phase right helped us enormously at the beginning.”
Since moving off its mainframe systems, MobilePay has seen demand for its application continue to grow and has now achieved over four million registered users in Denmark, or 82% of the country’s entire population. MobilePay is installed on nine out of ten smartphones in Denmark, making it one of the most popular apps in the country. The MobilePay team attributes a large part of this success to the flexibility that Cassandra enabled.
“Migrating away from the mainframe-based systems we had was challenging due to the huge number of customers we had to support, and the availability demands that were placed on us,” Jakobsen said. “The phased approach we took implementing new services meant that we could switch over in a controlled way and avoid any risk of downtime. However, we did see huge benefits from the migration around delivering new functionality back to the business. If we had remained on the mainframe, it would have been extremely difficult to meet those requests in a timely manner, if at all.”
This was especially important in the face of increasing payments sector competition. While MobilePay had a strong advantage given its acquisition of a large number of users, it risked losing this lead if it could not keep up with the speed of innovation in the payments industry.
“We could see other banks and startups entering the market, and there are international companies that can also choose to enter the market,” Jakobsen said. “They were not committed to any particular technology, and they could choose new architectures that are faster to develop in. Our decision to go with Cassandra and the new application stack meant we could deliver faster to market while we continued the cloud migration. If we hadn’t made that switch when we did, it would have been a much tougher situation for us.”
The MobilePay team learned valuable lessons in the initial launch that it’s now applying to expanded usage. This includes moving the team from a project-focused approach to a product development-focused approach.
“The change here was a big shift in mindset for the team, and we looked at other local organisations that had gone through the same change,” Nielsen said. “It helped us support our applications over time as we expanded the range of functionality we offered through MobilePay, and improved our prioritisation and speed of delivery, too. Our architecture design—and our choice of database—made this flexibility possible.”
An additional benefit for the MobilePay team was the ability to attract new talent.
Previously, we found it very difficult to find the right people with software skills to work on the application,” Jakobsen said. “The demand for skills around the mainframe—along with the lack of new people entering the workforce—made it harder. However, when we started discussing our approach around migrating away from the mainframe and to using microservices and NoSQL, we saw a big uplift in developers interested in joining the team. This helped us attract more talent and grow our developer team. We are seen as a great place to work now, providing our staff with great challenges that they can use new technologies to solve. We have future-proofed our software and our infrastructure based on Cassandra, and we can quickly meet any demands that are placed on us by the business or by our customers.”
Image credit: Gustavo Fring @ Pexels.