Skip to the content

Executive Summary 

EGL (European Gaming League), a prominent esports tournament and event organizer based in Europe, were looking to modernize their architecture to maximise resilience and scalability.   Whilst having an additional business goal to host a ladder with 1 million players or more, they turned to Code Wizards to architect and engineer an application solution.

Key AWS services configured by Code Wizards include AWS Lambda, Amazon API Gateway, Amazon Simple Queue Service (SQS), Amazon ElastiCache for Redis, AWS CloudFormation Templates, Amazon Elastic Kubernetes Service (EKS), Amazon Simple Storage Service (S3), Amazon Simple Notification Service (SNS), AWS CloudTrail and Amazon RDS (PostgreSQL). 

As part of the migrate and modernize process, all existing payloads were successfully migrated from other cloud providers.

The new architecture allows for huge scalability, high levels of resiliency and low response times, with extensibility in mind.  

The Challenge 

For leading esports organization EGL, speed, reliability, and flexibility were key requirements on their pursuit of platform modernization.   A system capable of handling the highest esports loads, whilst maintaining responsiveness over both their API and their website during tournament play.  There were some key challenges during the project, details of which are listed below.

Availability 

  • Complexity 
    • The APIs need to wrap and abstract some complex business logic, from seeding algorithms to resulting and position calculation
  • Unpredictability. 
    • Esports tournaments run worldwide, so prediction of load are possible to a degree, but results will often come in simultaneously requiring burst processing. 
    • When exposed via an API, the system can be called at any time to burst create new leagues / ladders, as well as recalculate positions in the standings based on overall ELO.

Extensibility

  • Rule Sets
    • Esports offers multiple game modes and challenge types as the gaming world evolves.   The system needed to be extensible to ensure future tournament modes can be incorporated.
  • Games
    • Whilst some core games (CS:GO for example) retain popularity, there's always new games emerging as the "next big esport" - having a system that can easily incorporate new titles handle their custom rulesets.

Data Accuracy 

  • Speed 
    • Both in terms of processing the data sets ingested via API calls, through to recalculations - data accuracy is still essential even though speed is paramount
  • Resiliency / Integrity
    • Some events have a specific ordering - and fault tolerance measures are key to the overall data health in the application.
    • Reporting / disputes have the potential to require data to "be reversed" and in some scenarios potentially replaying all other data to rebuild the system.
  • Data loss 
    • Even with a resilient architecture, there is the potential of "losing" data (a queued item failure resulting in being placed on a dead letter queue for example).

 

Solution 

Code Wizards implemented a solution that used the following AWS services: 

  • AWS Lambda
    • C#based serverless functions were engineered to handle complex calculations and manage player results.
    • The processing must be handled asynchronously to provide this scalability whilst maintaining cost-efficiency. By using AWS Lambda, EGL could process matches from millions of players within a single leaderboard, and this data was provided directly from the game synchronously on match completion.
  • Amazon Simple Queue Service (SQS)
    • Used to provide a full queue based communication platform to allow the Lambda serverless components to take processing both in parallel and sequentially as needed
  • Amazon Elastic Kubernetes Service
    • Amazon EKS used to create a scalable and manageable base for the websites and API stacks.   
    • All EKS elements were provisioned and configured using AWS CloudFormation
  • AWS ElastiCache for Redis
    • Esports platforms are massively read heavy.  Optimising the platform for read speed through extensive use of RedisCache allowed for batching of write events, ensuring minimal disruption to user experience during heavy load. 

Results and Benefits  

With Code Wizards help, EGL, were able to fully move off a deprecated platform before it was shut down.  The well architected and scalable solution that was provided to EGL by Code Wizards gave the following benefits and results:  

  • Increased computation speed
    • In the original platform it took over a minute to just seed the players for a major tournament.   This reduced to under a second elapsed time.
  • Increased speed to market for new features
    • Due to the power, scalability, and flexibility of using AWS, EGL is gaining from productivity boosts as developers can easily create, deploy, and maintain functionality
  • Total Cost of Ownership reduction 
    • Utilising AWS Serverless technologies ensures there's no need for a team or server administrators to actively maintain machines (virtual or physical)
  • Simplified Monitoring

ABOUT

EGL

EGL esports (Esports Gaming League) is a leading esports tournament organizer and platform for gamers of all skill levels. Founded in 2007, EGL has hosted thousands of tournaments and awarded millions of dollars in prizes.

EGL is committed to providing a fun and fair environment for all players. The company has a strict code of conduct that prohibits cheating and harassment. EGL also has a team of experienced referees who are available to help resolve disputes.

EGL is a great place for gamers of all skill levels to compete and have fun.

Working with Code Wizards has been the opposite of our previous experience of working with developers.

They understand esports and high performance scalability so we were able to continue with our day jobs while they handled the technical aspects for us. It was easy and fun; two things I’ve never been able to say before!

Glen Elliott, CEO

Working In Partnership

We're up for (almost) anything.

We believe that life is better in co-op (and if we can't help then we probably know somebody else that we can direct you to).  Get in touch.