A six-year legacy migration can look stable in staging and still fail under real production traffic. In a first-person account, Senior Software Engineer Krishnankamatchi describes how a team moving a web platform from a split GitLab-and-SVN workflow to AWS traced a sharp rise in origin load to the interaction between short Akamai cache lifetimes and frequent Next.js incremental static regeneration (ISR). The account is a useful operational case study, not an independently verified incident report.
Why the migration started with deployment risk
In the account, development and staging lived in GitLab while production lived in SVN. Releases depended on someone manually comparing and copying changes between repositories that had drifted apart: production contained hotfixes missing from staging, and Git contained changes not yet in production. Scheduled release windows and downtime added risk to an already difficult question: “Which branch is production?”
As an Amazon Associate I earn from qualifying purchases.
The team chose to migrate the application to AWS after discussing that deployment process. The author took ownership of the frontend and says the first task was mapping dependencies and boundaries—not immediately rewriting everything. That distinction matters: a migration has to preserve the behaviors users and downstream systems rely on, not merely move code into new infrastructure.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11What the target architecture had to preserve
The described design placed Akamai at the edge, in front of an AWS Application Load Balancer (ALB) and ECS Fargate containers. The frontend used Next.js for server-side rendering (SSR) and incremental static regeneration (ISR), with backend APIs and a data layer behind it.
#1 Best Overall
Because the platform depended on search traffic, the frontend work also had to account for URL behavior, redirects, metadata, rendering, and caching. Those are migration requirements, not cosmetic finishing touches: a deployment that serves pages but changes how search engines and users reach them can still break the product.
What happened when production traffic arrived
The author reports that frontend memory in lower environments was around 150–200 MB, while production memory exceeded 2 GiB after real traffic arrived. Some dashboards appeared to show request rates in the tens of thousands per second. These are observations from the author’s incident account, not general benchmarks or independently validated measurements.
Rank #2
The team investigated whether bots or an attack explained the load. The account describes correlating IP addresses, user agents, routes, cache hits and misses, response codes, origin request rates, and container memory. The eventual explanation was a configuration interaction rather than a confirmed external attack.
Two short intervals amplified origin work
During migration work, the team had shortened Akamai edge time-to-live (TTL) values to make changes propagate faster. Next.js ISR revalidation was also set to a short interval. In the author’s account, the short edge TTL sent more requests through to the origin, while frequent ISR revalidation caused popular pages to regenerate and fetch data more often. Together, the settings created unnecessary origin work and resource pressure.
The important lesson is not that either caching layer is inherently wrong. Edge caching and ISR govern different parts of the request path; tuning them without considering their combined effect can multiply work instead of reducing it. The source does not give the exact TTL or revalidation values, raw telemetry, or an independent incident analysis, so the reported causal explanation should be understood as the author’s account.
How the team investigated and recovered
Rather than treating memory growth or a high request count as a diagnosis, the team compared evidence across the edge, application, and containers. The reported investigation looked at traffic characteristics, which routes were being requested, cache behavior, origin demand, response codes, and memory. That broader view helped distinguish suspicious traffic from avoidable work generated by the application and cache configuration.
The author says the team adjusted ISR revalidation and restored more appropriate edge caching. The account reports that traffic, memory, and origin pressure fell afterward, but supplies no before-and-after measurements. It therefore supports the direction of the fix, not a precise performance claim.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →What a safer cutover involved
The migration account says cutover preparation included backups, rollback planning, database movement, DNS, load-balancer health checks, monitoring, and a temporary reduction in edge TTL. These are connected safeguards: a healthy application deployment is not enough if data movement, traffic routing, or recovery plans are unready.
- Backups and rollback: Have a recoverable data state and a defined route back if the new deployment fails.
- Database movement: Plan the data transition as part of the release, rather than treating it as a separate afterthought.
- DNS and health checks: Confirm routing and ALB health before directing production traffic to the new service.
- Monitoring: Watch origin demand, cache behavior, response codes, and container memory as traffic shifts.
- Edge TTL: A temporary shorter TTL can help changes propagate during cutover, but restore appropriate caching afterward and consider how it interacts with ISR.
What the migration changed—and what it did not prove
The author says the container-based deployment made production builds reproducible from source, replacing manual copying between divergent repositories with a buildable deployment path. That addresses a core source of release uncertainty in the story. It does not mean that moving to AWS eliminated operational risk: production-only traffic exposed a cache and regeneration interaction that lower environments had not revealed.
The account intentionally generalizes project names, domains, and identifying details and says its technical events and lessons are based on a real production migration. It does not provide raw monitoring data, architecture artifacts, an exact incident timeline, or independent confirmation of the cause and resolution. Read it as a practitioner’s retrospective about deployment discipline and production behavior—not as a comparative evaluation of AWS or a universal migration recipe. Read the account on DEV Community; the author profile identifies Krishnankamatchi as a Senior Software Engineer.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




