Computer Science and Software Engineering Capstone Presentations
Fall Quarter
December 18, 2020
Nate Faber "Planning,
Implementation, & Testing of a Collection of Microservices" (Liberty Mutual) Faculty Advisor: Dr. Nancy Kool |
Abstract My internship at Liberty Mutual Insurance as a backend
software engineer focused on one project. My project was design and start to
implement a new B2B data flow to replace my team's inbound service. (Detail
what the inbound service is). The inbound service is a collection of service
that receive claim information from CCC (an external vendor), validate it,
and send the information to the outbound service who send the claim
information to Navigator, our internal claims management system. This project
was still in the planning phase when I started. Along with my mentor, we came up with a collection
of new microservices in the Java Spring framework. These included 10 new
microservices, 5 replacing the inbound service, and 5 replacing the outbound
service. We also included a new middleware between the inbound and outbound
services called RabbitMQ, that we could use to log claim information. We
started by creating a context diagram to show all the new microservices we
could be creating, and how they are all connected. With planning done, I
started to work on the "first level" of services, in which I
received information of a claim from CCC, validated, and processed it. The
information from CCC was sent as a JSON object, which I stored using a JSON
Java library object. I then compared the object to a prebuilt claim, to
validate that all the fields required for a valid claim are present. For my
next step, I needed to provide some sort of source control for the
databases/queues that I would be sending the claim information to. We sent a
claim to 1 of 5 different databases based off what development environment
the claim is supposed to be in. For example, we could have one claim from CCC
be for our test environment, and another one for our production environment.
To make sure we had proper source control, I implemented Flyway, an
open-source technology that allows for proper source control of databases
that worked with the database/queue structure we were using. By the end of my internship, I was able to almost
finish a microservice that received input, validated input, and sent claim
information to the correct database environment. This project will be
continued by the other developers on my team. It is scheduled to be fully
released for use by other Liberty Mutual teams by the end of Quarter 1 2021. |
|
Updated December 15, 2020