Published 16 Feb, 2021
At a glance
Boost is a growing "infrastructure as a service" (IaaS) startup that provides an API-driven platform for companies to embed, create and offer insurance products to their customers. Implementing a microservices architecture has allowed the company to manage the complexities of state-by-state insurance legislation. To combat the complexities that have arisen as they have scaled their offering, Boost implemented Pactflow which allowed them to dramatically stabilise their service by reducing service outages and errors in deployment.
Democratising insurance is a complex business
Boost Insurance (Boost), a New York based ‘infrastructure as a service’ (IaaS) startup, enables companies to create, embed and deliver insurance products to their customers with ease. Whether insurance is their main business or a brand extension, Boost facilitates the provision of personal and commercial lines of insurance, including home, vehicle, cyber, travel and even pet - all while ensuring compliance with the complexity of the varied insurance legislation in the United States.
Boost’s goal is to “reduce the cost of building and managing an insurance business by packaging the necessary operational, compliance, and capital components and making them accessible through a simple integration”. From a product and engineering perspective, this translates to a complex matrix of services to develop and maintain, especially as new features go live.
Navigating the complexities of microservices
The microservices architecture Boost has provided flexibility to build out the extensive network of services to support their compelling proposition. However as more services have been added, challenges in testing and the prevalence of errors has increased.
One of the biggest challenges for David Isaccson, Engineering Manager at Boost, is stability. As an IaaS business, it’s not only Boost but their client’s service and reputation to consider - there really is no room for errors in production or service outages.
The trigger to tackle their stability challenge came at a critical time. David and his team were implementing an administration system to their platform that underpinned multiple services, which was already live for a handful of clients. It had become apparent to David that improvements to their testing and release strategy to improve stability were imperative for future success. He and his team explored alternatives to their current end to end testing approach and consequently came across contract testing.
End to end testing vs contract testing
As most other Engineering Managers would relate to, a microservices architecture enables flexibility and scale but doesn’t come without challenges. Over time, traditional end to end testing is no longer comprehensive enough to cover all scenarios, can become costly to maintain and slows the release process. David and his team found these pain points all too familiar and as a result, were experiencing service outages and errors in deployments.
The hosted version of Pactflow was an easy choice for Boost when choosing to implement contract testing. As an automated testing process, once this initial setup process is complete, little maintenance effort is required. And with complete visibility via an audit trail of tests and results, David and his team have no need to question tests.
Boost runs continuous integration as a standard practice on each code push, which includes Pact testing as part of the automated testing phase. They have also integrated Pactflow with their product development and release processes, preventing developers from merging or deploying incompatible changes, and providing a seamless developer experience. Contrasting this to an end-to-end testing approach, where there are more manual interventions is always a risk of being stuck in a situation where there is only one test environment (which has to be set up correctly) or a separate environment has to be set up for every set of every combination of services.
Great service stability - less service outages and errors
The shift from completely manual testing to simpler, automated contract testing solved David’s main challenge - the stability of Boost’s service.
Reduction in service outages
Previously, Boost would experience one outage a month. Today, using Pactflow and more than 15 microservices and integrations, there are virtually no service outages.
Reduction in errors in production
Because testing has been moved to a point in the process where the outcomes can be measured with more confidence, Boost also sees less errors in production. Before implementing Pactflow, David recalls a dozen issues in production each quarter - this has since reduced to no more than two issues a quarter.
Today, using Pactflow with more than 15 microservices and ~30 integrations, there are virtually no service outages.Tweet
As David and the team scale their offering, while also increasing the complexity of their microservices architecture, the previous, cumbersome manual verification process is no longer needed. David and his team value the simple and scalable testing process enabling them to prevent issues before they arise.
Additionally serving as the lead for the architecture working group, David has such confidence in Pactflow that he would happily see end to end testing eliminated completely and contract testing used 100% of the time. To David, the value of this is not only in the elimination of errors but the opportunity to shift his focus from putting out fires, to a focus on the big picture, future thinking for Boost.
David Isaacson is an Engineering Manager and head of the architecture working group at Boost, focusing on long-term platform health and developer experience. He formerly was the founding Director of Technology at Festicket and Co-Founder of Siafoo. When he’s not working you can find him traveling or, in non-Covid-times, at a basement concert. David currently resides in New York City.