← worklog

2018-08-01

Spring Boot microservices on AWS ECS

JavaSpring BootAWSDocker

Context

CWI is a Brazilian software house. I worked on a retail client's platform team — decomposing a Java monolith into Spring Boot services as part of a broader modernization.

What I built

  • 4 domain services (inventory, orders, notifications, reporting) as Spring Boot REST APIs
  • Containerized with Docker, deployed on ECS with ALB routing
  • SQS for async communication between services
  • RDS PostgreSQL per service (shared-nothing data model)

Challenges

The monolith had implicit coupling everywhere. Moving data across service boundaries cleanly was the hard part — not the deployment. We used a strangler fig pattern: new services took over one domain at a time while the monolith still ran.

What I learned

Domain boundaries are everything. Services that share a database aren't really microservices — they're a distributed monolith. Getting the data ownership right before splitting the code saved us from rebuilding half of it later.