Scalable Web Architecture: How We Handled a 950% Surge in Traffic

Here at MERCURY, we get 100 million requests hitting our servers each month - that’s about 3 million requests each day.

But, that’s the “easy” bit...

Challenges arise when our clients run campaigns or launch new products into the market. A recent launch triggered a 950% surge in traffic!

Let’s explore exactly what happened and explain how we’ve set up our infrastructure to easily deal with surges like this.

What causes a 950% surge in traffic

A Hong Kong client of ours is one of the world’s street fashion brand reseller.  As you might expect, they experience massive surges in traffic when new product/ collaboration product go on sale.

Here’s how crazy it looked when they announced a collaborative product with NIKE.  That's just for ONE product.  They have TONS of products running.

Odoo • Image and Text

Burst Traffic

There are over 10K Users access in 1 day when new product announced at 4pm.

Within the 24-hour period, which included the pre-sale event, the client’s website experienced a 950% surge in traffic and a 5000% increase in requests to the database. In other words, the site consumed ten days of its “normal” traffic in one day, and most of this traffic was spread over just 3 hours.

So, how do we set up our infrastructure to handle such a surge?

Handling such a massive traffic surge is an immense challenge, but one we can manage, thanks to our capacity and scaling strategy.  We break our platform down into self-contained ‘segments’ per client that we can dynamically increase or decrease independently, adding capacity precisely where it’s needed, at any given moment.  Our platform has been design in a way that we’ve separated out our search layer too, using a similar system to that which we use for our application servers.

Load balancers track all our search servers, balancing traffic between them, dodging any that are experiencing difficulties. This configuration makes adding new servers quick and easy if and when additional capacity is required.

At the end of day, we served Sales Order (on average) every 2 seconds, with 800 plus concurrent access to our database and served over 20,000 customers on behalf of our client.


James Huang August 11, 2024
Share this post
Tags
Operational Efficiency for Advertising Bureau