Modern Banking Products Fueled by a User-Centric Approach
Traditional banks organize their products around accounts. This means, for a single household, bank products and divisions – such as home equity lines of credit, checking accounts, credit cards, and more – might compete against each other.
Current wanted to try a user-centric approach to fuel new kinds of banking products that meet people where they are, with flexible savings, spending management, and ultimately faster access to their money. “Traditional banks are focused on growing the account, but Current is focused on the user and improving their financial outcome,” said Trevor Marshall, CTO.
At the same time, financial services is highly regulated and requires strict guarantees around transactions. This would impact Current’s technology infrastructure and data ecosystem. “Because we have strong requirements around data consistency, the main contender was a relational database,” said Marshall.
However, queries that find all the relationships and qualified signatories for a minor account take too long in relational databases. “If you’re modeling on Postgres, you’re creating new tables in memory as you’re creating JOINs, and that can cause a ton of latency and unexpected performance issues,” said Marshall.
Current needed the robust stability of traditional databases without their limitations. The solution also had to fit their cloud architecture, Google Cloud Platform (GCP). “All of our architecture is tightly intertwined with GCP,” said Marshall. “Everything is hosted on Google Cloud in Kubernetes deployments. We’re using a lot of native Google technology like Google Pub/Sub and Google Dataflow.”
The Current team chose Neo4j graphs in banking early on. “There’s a lot of interdependency of where our product is today with the store that we’re using, and all the guarantees and features that Neo4j provides,” said Marshall.
“We’ve modeled our total data model for our core banking engine directly into Neo4j,” he said. “The main use case for us is being able to quickly traverse to different data elements, and we’re able to encode the data model as a primitive directly into the database.”
Current’s first product changes the way teens bank and learn about money. Traditionally, a parent opens an account for their teen. That account-centered structure is inflexible.
Contrast that with Current’s Teen Banking, where a parent adds a product and connects a teen. “We map that into Neo4j by creating user nodes, and then connecting relationships between that user and the products they can access,” said Marshall. “This led to a completely new type of account structure that is far more flexible and more adaptable to the modern family.”
Fast development cycles are critical. “Neo4j has given us a ton of developer velocity, because there’s a very clear mental model that developers have when they’re interacting with a user’s graph,” said Marshall. “That mapping of the data model to the way that the data is actually architected in the database makes it very clear for any developers who join our team to understand the significance of the node, the relationship and how that all comes together.”