Case Studies/Modernising a Legacy Retail Platform for 10× Traffic
Retail & E-commerceGlobal Retail Group

Modernising a Legacy Retail Platform for 10× Traffic

Modernising a Legacy Retail Platform for 10× Traffic

Challenge

A decade-old monolithic platform struggled under peak seasonal demand. Page load times exceeded 8 seconds, checkout abandonment reached 34%, and the system routinely failed during high-traffic campaigns.

Solution

We incrementally decomposed the monolith into domain-driven microservices, introduced a sharded PostgreSQL architecture, and deployed a CDN-backed, globally distributed storefront with sub-200ms response times.

Results

Concurrent capacity increased from 800 to 12,000 users. Checkout abandonment reduced from 34% to 11%. Page load time improved to under 1.2 seconds. The platform processed a record £42M in a single campaign weekend.

Global Retail Group’s platform worked, until it mattered most.

For most of the year, performance was acceptable. But during peak trading periods such as Black Friday, holiday campaigns etc., the system consistently failed under load.

Symptoms:

  • Page load times exceeding 8 seconds
  • Checkout abandonment at 34%
  • Failed deployments during critical windows
  • Frequent outages under peak traffic

This wasn’t just a performance issue. It was a revenue risk.

Modern retail platform microservices architecture showing distributed system

The Architecture Constraint

The underlying system had reached its limits:

  • 1.2M+ lines of tightly coupled code
  • Single shared database with 400+ tables
  • No clear domain boundaries
  • 4-hour deployment cycles requiring maintenance windows

Scaling vertically was no longer viable. The architecture itself needed to change.

Migration Strategy

A full rewrite would have introduced unacceptable risk during active trading cycles. Instead, we applied a strangler-fig modernisation strategy, incrementally replacing core components while keeping the platform live.

Phase 1: Product Catalogue Extraction

The product catalogue was the highest-read domain and the primary source of database load.

What we did:

  • Extracted catalogue into a dedicated microservice
  • Introduced Elasticsearch for fast search and filtering
  • Implemented aggressive edge caching via CDN

Impact:

  • Reduced database load by 60%
  • Significantly improved response times for browsing

Phase 2: Checkout & Payments Rebuild

Checkout was the highest-risk and highest-value flow. We redesigned it as a stateless, event-driven saga:

  • Each checkout step emits events to downstream services
  • Introduced idempotency for payment operations
  • Built a PCI-compliant payment microservice
  • Implemented retry and failure recovery mechanisms

This ensured resilience under high concurrency.

Phase 3: Data Layer Transformation

The original monolithic database was a bottleneck.

We introduced:

  • Sharded PostgreSQL architecture
  • Domain-based data ownership per service
  • Read replicas for high-traffic workloads

This enabled horizontal scaling and eliminated single-point contention.

Phase 4: Global Performance Layer

To meet global performance requirements:

  • Deployed CDN-backed storefront
  • Implemented edge caching for static and semi-dynamic content
  • Optimised TTFB to sub-200ms globally

This shifted load away from origin infrastructure and improved user experience significantly.

Phase 5: Parallel Run & Decommissioning

  • Ran legacy and new systems in parallel for one full trading cycle
  • Gradually shifted traffic to new services
  • Monitored system behaviour under peak conditions
  • Safely decommissioned legacy infrastructure

No downtime. No disruption.

Measured Impact

Since your CMS struggles with tables, use this format 👇

Concurrent usersBefore: 800After: 12,000Impact: 15× scale capacity

Page load timeBefore: 8+ secondsAfter: <1.2 secondsImpact: dramatically improved UX

Checkout abandonmentBefore: 34%After: 11%Impact: +23 percentage point improvement

Deployment timeBefore: 4 hours + downtimeAfter: <8 minutes, zero downtimeImpact: continuous delivery

Peak campaign revenueBefore: constrained by system limitsAfter: £42M in a single weekendImpact: revenue unlocked

Business Outcomes

Before:

  • Revenue limited by system capacity
  • Poor customer experience during peak demand
  • High operational risk during deployments

After:

  • Platform scaled confidently for peak events
  • Consistent, fast customer experience globally
  • Engineering team able to deploy continuously
  • Revenue growth supported by infrastructure

Why This Worked

  1. Incremental modernisation reduced riskThe system evolved without disrupting operations
  2. Domain-driven design improved clarityServices aligned with business capabilities
  3. Event-driven architecture improved resilienceFailures were isolated instead of cascading
  4. Edge-first strategy improved performanceReduced dependency on core infrastructure
  5. Parallel run ensured stabilityMigration validated under real-world load

Timeline

  • Phase 1: Catalogue extraction
  • Phase 2: Checkout and payments rebuild
  • Phase 3: Data layer transformation
  • Phase 4: Global performance optimisation
  • Phase 5: Parallel run and decommission

Delivered without disruption during active trading cycles.

Final Thought

Retail platforms don’t fail gradually. They fail when demand peaks. The systems that succeed are the ones designed for their busiest day, not their average one.

Scaling Retail Platforms?

Intagleo Systems helps organisations modernise legacy e-commerce platforms, improve performance, and scale confidently for peak demand.

Book a consultation