Legacy Ticketing System Rescue: Clearing Backlog, Performance, and Security Issues

In June 2024, a former client approached us with an urgent problem. Their event ticketing system, previously maintained by an external vendor, had deteriorated significantly after being brought in-house. The system faced frequent outages during peak ticket-sale periods and had accumulated a substantial bug backlog. With a deadline of roughly six months to turn the situation around, we accepted the challenge.

However, the initial codebase assessment revealed technical debt far worse than anticipated:

  • Running on unsupported Django 2.1 with outdated dependencies
  • Inconsistent, duplicated code implementations where similar features were coded differently without purpose
  • Minimal test coverage, with only 50% of existing tests passing
  • A perplexing infrastructure setup with three redundant Nginx instances, suggesting fundamental misunderstandings of containerization and Kubernetes principles

Our six-month rescue effort focused on three key areas:

  1. Modernization: We upgraded all dependencies to supported versions, replacing or removing unnecessary ones. Some dependencies were so superfluous that their original purpose remained unclear. Others required complete in-house rewrites.
  2. Code Quality: We unified components to resolve permission-related bugs and implemented comprehensive testing for critical paths. Many bugs stemmed from inconsistent behavior across different user permission levels.
  3. Infrastructure: We streamlined the deployment architecture, eliminating redundant services and optimizing for high-traffic periods.

By the year-end deadline, we had achieved all objectives: clearing the entire bug backlog, achieving zero downtime during peak traffic periods, and dramatically improving the system's maintainability.

Go back