Project Rewrite - Overview

Project Rewrite - Overview
Not for the faint hearted.

Introduction

HealthMetrics current monolithic system suffers from high-coupling and an outdated technology stack. It also does not scale well with business opportunities and its engineering resources.

HealthMetrics wishes to adopt an architectural style where it can build applications that are resilient, highly scalable, independently deployable, and are able to evolve quickly.

HealthMetrics will reimagine and rewrite its current system into a set of microservices under Project Rewrite.

Solving the Real Problem

While this project aims to rewrite and reimplement the existing platform with a microservices architecture, it is important to know that writing microservices itself won't solve the real problem.

Our real problems are:

  1. high-coupling;
  2. effective scaling;
  3. outdated tech stack.

Microservices architecture, through its very nature, will help us solve these with some effort. It will also introduce additional challenges.

Goal

  • To have an architecture where we can have multiple squads work in parallel, with limited dependencies
  • To have front ends that are optimised for their target audience
  • To use event sourcing where necessary

Phases

This project is separated into planning/design, coding, deployment and post-deployment phases.

Major tasks in the planning phase:

  1. Domain modelling
  2. Designing microservice architecture
  3. Microservice operation in production
  4. Monolith migration

Key Roles

CTO

  • to lead and align on project directions
  • to communicate with internal, and external stakeholders
  • to liaise with the company Board to ensure Company-level support
  • to secure a budget for necessary resources

Head of Product

  • to work with the Architect team on strategic domain modeling
  • to restructure the team and secure enough resources to fit the microservices squad implementation

Solutions Architect

  • to own domain modeling process (both strategic and tactical)
  • to work with the Product team on strategic domain modeling
  • to work with the Frontier team on tactical domain modeling and microservices architecture design
  • to enlist and engage experts in the domain modeling process

Head of Engineering

  • to liaise and guide engineering teams in their tasks
  • to restructure the team and secure enough resources to fit the microservices squad implementation
  • to enable and upskill the engineering team to work on distributed systems
  • to enlist and engage experts on microservices architecture design

Frontier Team

  • to own the microservices architecture design implementation
  • to work with the architect on tactical domain modeling and microservices architecture design

DevOps Team

  • to own and work on microservices CI/CD, health check, logging and monitoring
  • to identify cross-cutting concerns with the Frontier team

Challenges

They say that you can't bake a cake without breaking eggs... but we can!

More than a few... stay tuned while we bring you some of the challenges we faced.

Credits to Advent Phang for the overview.


HealthMetrics: A Better Benefits Experience For All
HealthMetrics is an award-winning cloud enterprise platform for companies to manage their employees’ healthcare benefits holistically.