After analyzing existing system Evgeni Reingold determined this is legacy style monolithic application performing poorly in current conditions and adding extra functionality will bring performance down to unacceptable level and further increase complexity of the system.
Evgeni Reingold has also re-designed existing system and de-coupled initial immunization message processing function from UI services. This process was originally designed as sequential, non-scalable function tightly coupled with rest of the application. Using Spring Boot and JMS Evgeni Reingold was able to create new stand-alone scalable event-driven microservice.
Communication between Component 1 (Initial Immunization record processing and validation) and Component 2 (Patient Matching and immunization recording) was implemented as exchange of JMS messages rather direct API calls (Choreography instead of Orchestration). This approach prevents tight coupling of those microservices and opens broaden opportunities for scalability.