Saurabh Singh
Back to work

Zinnia | Senior 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 Camunda orchestration.

24+

Modules decomposed

0

Breaking API changes

ECS

Fargate deployment target

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.

Approach

  • Identified service boundaries aligned with transaction domains while maintaining Camunda BPMN process orchestration compatibility.
  • 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.
  • Camunda workflow orchestration remained intact across the decomposed architecture.