Enterprise-Scale Live Event Ticketing Platform (NDA)
A high-traffic live event ticketing platform serving rightsholders, resellers, and affiliate partners needed to modernize its
technology stack. The application powered critical revenue streams and required a zero-downtime migration to the latest
Rails and Ruby versions — all while active development continued.
Requirements
- Upgrade from Rails 5.2.8.1 & Ruby 2.7.7 to Rails 7.2.1 & Ruby 3.3.6 in a multi-phase process.
- Ensure uninterrupted operations for millions of transactions during the migration.
- Maintain high code quality, test coverage, and style compliance throughout.
- Address asset pipeline modernization, autoloading changes, and large-scale file storage migration.
- Follow a canary deployment strategy in Kubernetes/AWS to validate stability before full rollout.
Timeline & Team
- Duration: 4 months from project start to full production rollout.
- Team Size: 3 senior engineers dedicated to the upgrade effort.
- Parallel Development: 3–4 client engineers continued feature delivery during the migration.
What We Delivered
Phased Upgrade Path
- Phase 1 – Ruby Upgrade: Migrated from Ruby 2.7.7 to 3.3.6 first, ensuring gem compatibility and CI stability before changing Rails versions.
- Phase 2 – Rails 6.x Transition: Upgraded to Rails 6.x to address intermediate deprecations, API changes, and prepare the codebase for 7.x.
- Phase 3 – Rails 7.2 Migration: Completed the transition to Rails 7.2.1, leveraging new framework features and ensuring security compliance.
Technical Achievements
- Deprecation Resolution: Cleared all deprecation warnings at each phase to maintain forward compatibility.
- Asset Pipeline Modernization: Migrated from Sprockets to
jsbundling
+ Propshaft for a faster, more maintainable asset workflow.
- Autoloading & Namespacing: Moved from Classic loader to Zeitwerk, refactoring code to resolve naming and namespace conflicts.
- Massive File Storage Migration: Paperclip → Active Storage for millions of assets using a dual-write strategy, validated in staging and prod-mirror before final cutover.
- Code Quality & Testing: Upgraded and added tests where needed, fixed RuboCop style warnings, and preserved strong test coverage (74.4% Ruby, 100% JS).
- CI/CD & Deployment: Leveraged Semaphore CI pipelines and Kubernetes-based canary releases (1% → 3% → 5% → 100%) to ensure safe production rollout.
Outcome
- Modern, secure, and future-ready Rails & Ruby stack.
- Improved developer productivity with updated tooling, CI/CD pipelines, and consistent environments.
- Reduced long-term maintenance risk by removing deprecated dependencies and APIs.
- Delivered a zero-downtime upgrade despite active feature development and heavy production traffic.
Client name withheld under NDA. Detailed references and deeper technical breakdown available upon request.