Peak Registration Periods: How Amilia Handles Your Traffic

Posted on 4/27/15 11:18 AM by Pierre-Luc Maheu

This is it. THE day. Registration day. At 9 o'clock sharp, 5,000 spots will open for everybody to register. Thousands of accounts will be created, forms will be filled, spots will be sold, and payments will be processed. Tens of thousands of web pages served to users. Flames start emerging from the servers...never mind, scratch that one. We'll make sure that doesn't happen. 


During peak registration times, Amilia receives, for a couple minutes, between 20 and 50 times its usual traffic. Imagine your local grocery store. Let’s say your grocery store can comfortably serve about 100 people at once. That means 100 people can get in and out of the store in a reasonable amount of time without having to put more money in the parking meter. Now, let’s say there’s a flash sale on ice cream and, on a really hot day, 2,000 people rush into the store all at once to get their hands on that half-price ice cream. Can you imagine how the cashiers and other customers would handle that kind of load? Well, that’s exactly what we do at Amilia: we ensure that our platform can handle many people buying ice cream (or in our case, registering for activities) all at once. 


Here are some of the techniques we use:

Use of a CDN

Put very simply, a CDN or Content Delivery Network is a special type of server meant to serve files. It’s the only job it does but it’s very efficient at it. Using a CDN alleviates our servers from needing to deliver all the files required for a web page to load. While you only wait a nanosecond, it usually takes over 20 files for a web page to load.

Optimized Code

What works when 50 clients are buying activities at the same time may not work for 5,000. With specialized tools, we have detailed metrics about how code performs under pressure to see which part can be improved. Improving the code, on the other hand, is a whole other process.

Database queries optimized

During an intense registration period, the database server receives thousands of queries (requests for data) per second. It is also possible to optimize those requests so they use less CPU or memory on the server.

Two servers are better than one 

Another way we can handle heavy traffic is by using more than one server. Using some software and hardware made for the job, incoming requests are handled by several servers, increasing our maximum capacity.

Proactively seek and solve bottlenecks

Collecting data is the key to finding and solving performance bottlenecks before they cause major issues (such as smoking computer screens, or worse, your clients have to wait more than 30 seconds for a page to load!) Every request made to our site is logged, along with the response time for each request, execution time of database queries, etc. With that data, we can see which requests take more juice from our servers and optimize them to make sure all 5,000 of those registrations go through without a hitch.


Check out our new E-book: 10 Free Tools to Manage Your Marketing Efforts 

Download E-book