« Ippon Technologies acted as an extension of our own team and delivered the goods on time and under budget. They were a key part of our redesign of our data delivery platform which was accomplished in four months. Through every sprint, Ippon was professional, focused, and a lot of fun to work with as well. This is the kind of partner that every growth company benefits from working with. »
Fenris Digital is a new InsurTech company focused on improving the customer journey at the point of quote. Fenris maintains one of the largest insurance data repositories in the industry. Using records on over 255 million adults, 130 million households, and 50 million small businesses, the Fenris pre-fill data API helps reduce the average application question set from 50 to just 5.
Fenris Digital already had a great business model when they approached Ippon Technologies for help, and their technical team had already written a target architecture and mapped out its desired behaviors. What they needed was help validating that target architecture as well as delivering it.
We started our relationship with an AWS Well Architected Review (WAR) to be able to provide some quick wins by remediating the most important issues. While we were remediating the most important issues, we worked with their technology leadership to assess their solution and validate their roadmap.
One of the main challenges to solve was to be able to provide an API security solution that followed best practices and enabled Fenris to track usage of their APIs for billing purposes.
We proposed creating a new architecture using AWS’ ECS Fargate for container management and JHipster’s microservice architecture to rapidly refactor the applications into a common architecture. The JHipster architecture follows best practices by providing us an API gateway and a microservice registry out of the box that uses Netflix’s OSS. We secured our gateway using Amazon Cognito, an OAuth2 provider.
Fenris’ services were divided into two main domains:
1. One domain encompassing the business value that Fenris provides
2. The other domain that manages the business operations such as auditing and billing.
This allowed us to have minimal bookkeeping logic within our services. These services only needed to send events when they were being triggered for the billing and auditing services to consume them. And as a consequence, a real time billing service where we could build dashboards.
The entire solution was co-developed with Fenris’ development team where, over 4 months, we built Dev, UAT and Production environments. We also automated everything with a CICD pipeline using GitlabCI and AWS CLI.
« Being highly productive with a small team is important to every start up. This platform enables us to deliver new services very quickly. This allows us to co-innovate with our customers. »
Fenris can now onboard new customers and API products to the billing system without code changes. Once a customer is given a Cognito key and secret, they can authenticate, use the products that they have purchased, and billing information will automatically be viewable as a dashboard. The Cognito Client ID is used to correlate which customer is using which API. The API gateway attaches the billing role to the request so that each microservice can attach this role to the events generated by the request.
As a customer uses the API and events get consumed by the billing microservice, a dashboard can be dynamically created and updated in real time. Fenris Digital made a total of 179 successful, 4 partial and 71 failed API calls. With this one view, they can track which products the customer is using the most, which products have had issues and they can see total revenue generated as well as per product.
With this solution in place, Fenris Digital can now scale up the number of customers secure in the knowledge that their APIs are well secured with Cognito and they can also scale up their product offering without having to change their billing service. In fact they saw a 400% growth of their API usage over a period of two months.