Split the use case into four services
I helped decompose the Java application into four Spring Boot microservices, using Spring MVC and H2/MySQL persistence. The proof of concept reduced response time from 1.2 seconds to 700 ms.
The exercise provided hands-on experience with service boundaries, interfaces and the operational work required when functionality is split across processes.
Test and observe the result
Unit tests, regression testing, and white-box and black-box testing brought code coverage to 85%. Testing was part of evaluating the migration rather than a separate afterthought.
I deployed services using AWS infrastructure including EC2, S3 and Elastic Beanstalk, and configured CloudWatch monitoring and automated alerts. The emphasis was learning disciplined implementation and operational practices in a corporate environment.
Outcomes
- Reduced response time from 1.2 seconds to 700 ms in an internal banking proof of concept by helping decompose a Java monolith into four Spring Boot microservices.
- Achieved 85% code coverage in the proof of concept by writing unit tests and carrying out regression, white-box and black-box testing.
- Enabled independent deployment and operational monitoring of four services by deploying them on AWS and configuring CloudWatch monitoring and automated alerts.
Tradeoffs
Four services can be deployed independently, but they also introduce more interfaces and operational moving parts. The proof of concept was a bounded way to learn those tradeoffs before treating service decomposition as an automatic improvement.