Re-architected legacy stack — $1.2M saved on infra annually
Lifted a monolithic on-prem system onto a Kubernetes-native, multi-region AWS architecture with zero-downtime cutover and a 4× throughput increase. Cost optimized post-migration for $1.2M annual savings.
The challenge
Parcelnet's parcel-routing engine ran on a 12-year-old on-prem stack — a monolith written in Java 8, deployed on bare-metal servers in a single colo facility, managed via SSH and a wiki. It couldn't scale past peak holiday volume: Black Friday traffic routinely triggered OOM kills and routing delays that cascaded into missed delivery SLAs. The CTO needed a cloud migration with zero downtime, no rewrite of the core routing logic (too mission-critical to touch), and a hard requirement to reduce cost per parcel — not inflate it with cloud markup.
Our approach
- Containerized the existing Java monolith and its six supporting services (tracking DB, label generator, rate cache, event bus, auth service, admin portal) into Docker images with no logic changes. Each image was built from the same JARs running in production, verified with a full integration test suite before any infrastructure work began.
- Stood up multi-region EKS clusters in us-east-1, us-west-2, and eu-west-1, managed entirely via Terraform modules. Every resource — VPCs, subnets, security groups, IAM roles, node groups, load balancers — was defined as code. Zero click-ops, zero special-case servers.
- Migrated the monolith's embedded H2 database to a managed Amazon RDS PostgreSQL cluster with cross-region read replicas. The schema and stored procedures remained identical, so the routing engine couldn't tell the difference — only the connection string changed.
- Built a parallel-run cutover strategy: the new EKS stack ran alongside the on-prem stack for two weeks, processing a full copy of production traffic via a traffic-shadowing layer at the load balancer. The operations team compared routing decisions, latency, and error rates side by side before a single customer parcel was routed on the new system.
- Implemented a multi-layered Redis caching tier (route plans, rate lookups, label templates) that reduced database load by 70% and dropped P99 latency from 7 seconds to 1.2 seconds for the most common routing operations.
- Cost-optimized aggressively post-migration: right-sized EC2 instance families based on 30 days of production metrics, purchased 3-year reserved instances for the steady-state workload, configured S3 lifecycle policies to auto-tier tracking data to Glacier after 90 days, and tagged every resource with a business-unit cost center for chargeback visibility.
- Set up GitOps-style deployments with ArgoCD so every change to the routing engine was reviewed, auto-deployed to staging, gated on integration tests, and promoted to production via a single PR merge. The old on-prem deploy process was a Friday-night SSH session — the new one is a fully audited, rollback-capable pipeline.
The outcome
Migration completed with zero downtime and zero routing errors during cutover. Peak throughput quadrupled from 8,000 to 32,000 parcels per minute. P99 latency on routing operations dropped from 7 seconds to 1.2 seconds. Annualized infrastructure spend dropped by $1.2M versus the on-prem operating cost — a 40% reduction in cost per parcel. Black Friday 2024 was the first in 13 years without a war room.
Ready to build something exceptional?
Let's discuss your next software product, AI initiative, or digital transformation project. Free, no-obligation 30-minute consult.