Migrating Healthcare Data


PENDING UPDATE

Summary


I worked part time on this project as a technical architect and developer. It was my responsibility to work with designers and front end engineers to build out a CRM, an authentication service, a react application and API's. If you're interested in how the project progressed, I've written about the entire process below. However here I will summarise what it entailed.

  1. Microservice architecture using Amazon ECS, docker and github actions for deployment. The logging was all monitored via AWS cloud monitoring and all applcations were built via docker compose files that included target groups for health endpoints and load balancers with SSL. The docker images were hosted on Amazon ECR. All credentials were stored using AWS Secrets Manager and pulled into docker via a docker secrets injector.

  2. Web app built with React and Material UI. This was deployed onto AWS S3 with a cloudfront CDN. Deployment was done automatically via github actions.

  3. Java services built using Spring Boot. Protected by Jwt based authorisation using an OIDC server. Made use of libraries such as model mapper for DTO conversion, lombok for reduced boiler plate and hibernate for entity definitions.

  4. The API's were all driven by hypermedia href's and we followed the Richardson Maturity Model - Level 3 throughout the process. All naming conventions for the properties were based off of schema.org.

  5. I used an RDS Postgres instance as we had set up users generically to allow for multiple different users to be stored with flexible schemas (A mixture of JSONB generic and defined fields).

  6. I used Keycloak as our OAUTH2 server, as it was easily configurable and integrated with both Spring and React easily.

  7. I chose Amazon ECS as we wouldn't have many services for this application, so I was happy to leave the majority of the orchestration to AWS. I also find this would simplify the architecture for the client.