Transaction platform Technical lead 2025
Monolith to Microservices on AWS ECS
Decomposed a 24+ module transaction monorepo into independently deployable services while preserving external API contracts and workflow orchestration.
Key outcomes
- Modules decomposed
- 24+
- Breaking API changes
- 0
- Fargate deployment target
- ECS
Problem
A large transaction-processing monorepo with 24+ modules and multiple APIs sharing the same context path created deployment bottlenecks, tight coupling, and slow release cycles. Any change risked affecting unrelated modules, and the team could not deploy services independently.
Before → after
Deployment model
24+ modules in one monorepo, shared context path
Independently deployable services on ECS Fargate
API consumers
Every release coordinated monolith-wide
Same external routes via Traefik, 0 breaking changes
Architecture
Approach
- Identified service boundaries aligned with transaction domains while keeping workflow orchestration compatible.
- Introduced Traefik reverse-proxy routing to preserve existing external API access patterns during and after migration.
- Deployed services on AWS ECS Fargate with GitHub Actions-based GitOps workflows for automated, repeatable rollouts.
- Migrated incrementally - one service at a time - validating each cutover against production traffic patterns.
Outcome
- Services deploy independently with reduced coupling across the platform.
- External API consumers experienced no breaking changes during migration.
- Release cycles accelerated as teams could ship without coordinating monolith-wide deployments.
- Workflow orchestration remained intact across the decomposed architecture.
Technologies
- Java
- Workflow orchestration
- AWS ECS
- Traefik
- GitOps
Similar problem?
Facing a migration, reliability, or scale challenge like this one?
I take on staff and principal IC roles, engineering leadership, and focused consulting engagements.