Skip to content
All case studies
ArchitectureHR-tech

Migrated from Heroku to a cloud platform in 9 weeks.

B2B platform hit Heroku ceilings. We landed them on ECS with managed Postgres, zero downtime, and a runbook the team actually uses.

ClientB2B SaaS platform
Duration9 weeks · 2 engineers
Regionus-east-1, eu-west-1
CategoryArchitecture
Migrated from Heroku to a cloud platform in 9 weeks.
0Minutes of downtime in cutover
9 weeksFull migration timeline
2xThroughput at same cost
EU + USRegion availability day one
THE PROBLEM

What we walked into.

Heroku Performance-L dynos were maxed out at peak. The team had hit Heroku Postgres connection ceilings twice in the previous quarter. EU data residency was a new contract requirement, and Heroku could not satisfy it in their region.

The engineering team had never run AWS. They wanted to migrate but did not want a multi-quarter project that distracted from the roadmap.

THE APPROACH

How we shipped it.

01

Pick boring tech that will still run in three years

ECS on Fargate (no nodes to manage), RDS Aurora Postgres (Heroku Postgres compatible), CloudFront for static. Two regions, multi-AZ in each. Nothing exotic.

02

Infrastructure as code, repository in their org

Every resource Terraformed and committed to a new repo in their GitHub org. Their team contributed PRs to it during the engagement so they were comfortable with it before hand-off.

03

Dual-write Postgres, cut over reads then writes

Replicated Heroku Postgres to RDS via logical replication. Switched read traffic first (verified for a week), then cut writes during a maintenance window. Total customer-facing downtime: zero.

04

Runbook week

Week 9 was entirely hand-off: paged the on-call team through incident scenarios, walked through deploys, reviewed cost model. Their oncall ran the next four weeks without us.

STACK

AWS services in this engagement

ECS / FargateECS / Fargate
RDS AuroraRDS Aurora
CloudFrontCloudFront
ALBALB
S3S3
LambdaLambda
THE OUTCOME

What shipped.

Throughput doubled at the same monthly spend as their old Heroku setup. Connection ceiling no longer a bottleneck.

EU data residency contract closed in week 10. The team has shipped 14 features since hand-off with no infra slowdowns.

WANT SOMETHING SIMILAR?

Tell us what you're trying to ship.

A 30-minute scoping call with the engineers who would do the work.