Enterprise Ticketing

Zero‑Downtime Rails & Ruby Upgrade for Live Event Platform

Modernizing a high‑traffic ticketing platform serving millions of transactions without interrupting revenue streams

Enterprise
Live Event Platform
6
Months Timeline
100%
Uptime Maintained
3
Senior Engineers
The Challenge

Modernization Without Interruption

A high-traffic live event ticketing platform serving rightsholders, resellers, and affiliate partners needed to modernize its technology stack while maintaining uninterrupted operations.

The application powered critical revenue streams and required a zero-downtime migration from Rails 5.2 to Rails 7.2 — all while active development continued on the platform. The challenge wasn't just upgrading versions; it was ensuring millions of ticket transactions continued flowing during peak event seasons.

Key Requirements

  • Upgrade from Rails 5.2.8.1 & Ruby 2.7.7 to Rails 7.2.1 & Ruby 3.3.6
  • Zero downtime during migration for uninterrupted transactions
  • Maintain high code quality and test coverage throughout
  • Address asset pipeline modernization and file storage migration
  • Implement canary deployment strategy in Kubernetes/AWS

Timeline & Team

Structured collaboration for success

Project Duration 6 months

From planning to full production rollout

Upgrade Team 3 Senior Engineers

Dedicated to migration effort

Client Team 3-4 Engineers

Continued feature development in parallel

Our Approach

Phased Upgrade Strategy

We upgraded a legacy Rails stack through controlled checkpoints—isolating risk, keeping releases deployable, and validating stability at every phase.

01

Rails 6.1 Checkpoint

Framework First

We moved from Rails 5.2 to Rails 6.1 while keeping Ruby 2.7 stable—resolving deprecations, aligning framework configs, and preparing the codebase for modern autoloading patterns.

Deprecation Cleanup Config Alignment Incremental Releases
02

Ruby 3.1.5 Upgrade

Language & Runtime Step

With Rails pinned at 6.1, we upgraded Ruby from 2.7 to 3.1.5—addressing keyword-arg changes, updating gems safely, and validating behavior with CI + regression checks.

Gem Compatibility CI + Regression Incremental Debugging
03

Rails 7.2 + Ruby 3.3

Final Modernization

We completed the final jump to Rails 7.2 and Ruby 3.3—finishing remaining deprecations, updating dependencies, and ensuring the application is on a supported, secure foundation for long-term maintenance.

Supported Baseline Security Updates Performance & Stability
Technical Achievements

Comprehensive Modernization

Beyond just version numbers: we modernized the entire development and deployment ecosystem

Asset Pipeline Modernization

Migrated from Sprockets to jsbundling + Propshaft for a faster, more maintainable asset workflow.

Improved asset compilation speed by 60%

File Storage Migration

Moved from Paperclip to Active Storage for millions of assets using a dual-write strategy.

Validated in staging before production cutover

Autoloading & Namespacing

Moved from Classic loader to Zeitwerk, refactoring code to resolve naming and namespace conflicts.

Improved application boot time by 40%

CI/CD & Deployment

Leveraged Semaphore CI pipelines and Kubernetes-based canary releases (1% → 3% → 5% → 100%) for safe rollout.

Zero-downtime deployment achieved
74.4%
Ruby Test Coverage

Kept stable across phases

100%
Frontend Test Pass

All CI checks green on release branches

0
Data Loss

Safe migration with explicit skips + tagging

Migration Highlight

Paperclip → Active Storage (Zero-Downtime)

As part of the Rails modernization, we migrated legacy attachments safely using a dual-write + backfill approach, designed for large datasets and imperfect historical storage.

Dual-Write Cutover

New uploads were temporarily written to both systems, allowing a gradual switch and an immediate rollback path.

Zero Downtime Rollback Safe
Background Backfill at Scale

We backfilled historical attachments in batches using background jobs, scheduled off-peak and parallelizable for speed.

Millions of Records Auditable
Legacy Gaps Handled Cleanly

Some legacy Paperclip references pointed to missing/moved files. We skipped those safely and tagged records with metadata to prevent broken blobs and maintain traceability.

Skip + Tag No Silent Failures
ActiveStorage tables merged early Validations preserved via gem-based checks Serving switched model-by-model
Results

Modern, Secure, Future‑Ready

Key Outcomes

Modern Technology Stack

Updated to Rails 7.2.1 & Ruby 3.3.6 with latest security patches and performance improvements

Improved Developer Productivity

Updated tooling, CI/CD pipelines, and consistent development environments

Reduced Maintenance Risk

Removed deprecated dependencies and APIs, extending platform lifespan

Business Continuity

Zero-downtime upgrade maintained during active feature development and heavy production traffic

Technical Stack

Before Migration

Rails 5.2.8.1 Ruby 2.7.7 Sprockets Paperclip

After Migration

Rails 7.2.1 Ruby 3.3.6 jsbundling-rails Propshaft Active Storage Zeitwerk Kubernetes AWS EKS

Ready to Modernize Your Rails Application?

Our phased, zero-downtime upgrade approach ensures your business continues running while we modernize your technology stack.

All client information is kept confidential under NDA agreements

Explore More Success Stories

Cold Storage

Weekend-Only Analytics

AI-driven cold storage monitoring that runs only on weekends, cutting costs significantly.

Read Case Study
Hosting & E-Commerce

Unified Hosting Platform

Integrated multiple hosting systems into one platform, improving monetization and operations.

Read Case Study
Supply Chain & IoT

Real-Time Cold Storage Monitoring

Fault-tolerant IoT pipeline with custom protocol integration and live dashboards.

Read Case Study