Back to Case Studies
Leading French agency

Zenika

The team needed to replace a critical backend component that handled user communication credits and call authorizations. The functionality was complex, poorly understood, and the existing code was inadequately tested, holding back implementation of new business features.

"Apart from the 30 minutes of downtime required for data migration, we have been able to replace a major legacy component of our IS in full transparency for our customers. Only one minor bug was detected two weeks after experimental version was put into production. This was an administrative operation which had never been carried out in the double-run phases."
Yohan Legat
Technical Lead at Zenika

Zenika faced the challenge of replacing a critical legacy component handling user communication credits and call authorizations without the ability to take an incremental approach. The existing functionality was complex and poorly understood, with inadequate test coverage holding back new feature development.

  • Complex legacy system with poor test coverage
  • Critical backend component requiring careful replacement
  • Need to validate new implementation against real traffic
  • Complex session and object ID management requirements
  • Required handling of auto-incremented IDs and timestamps
  • Needed validation of data migration accuracy

Using GoReplay, the team set up a comprehensive validation process including functional testing with replayed production traffic and technical validation under production-like conditions. This allowed them to identify and fix issues before they could impact customers.

The technical validation phase proved invaluable as it revealed garbage collector issues that we resolved by reworking our event modeling and cache invalidation algorithms. This wouldn't have been caught without testing under true production conditions.

Custom middleware was developed to handle complex scenarios including session management, timestamp differences, and auto-incremented ID mapping between production and test environments. The team also implemented careful data migration procedures with separate validation processes.

The extensive validation phases that preceded the production deployment reassured teams about code stability and familiarized them with the data migration procedure. This preparation was key to achieving a smooth transition with minimal downtime.

Read original article (in French) here.

30 minutes
Downtime During Migration
Multiple days
Traffic Validation Period
1 minor bug
Post-deployment Issues

The Solution

Zenika implemented GoReplay to capture production traffic and replay it to the new version of the component before deployment. They developed custom middleware to handle session management and dynamically rewrite object IDs between production and test environments, along with handling timestamp differences and auto-incremented IDs.

Key Results

Successfully replaced major legacy component with only 30 minutes downtime
Only one minor administrative bug detected in two weeks after deployment
Maintained full transparency for customers during migration
Validated new component against real production traffic patterns
Identified and fixed garbage collector issues during technical validation
Successfully migrated complex user credit and authorization system

Ready to achieve similar results?

Start improving your testing and deployment processes today with GoReplay