After the the pandemic, GLobal Citizen organized one of the first big concerts in the world. Dedicated to celebrate the vaccines, and also to reunite the world.
The concert was broadcasted globally, on radios, tv stations and on the internet. The goal was to fundraise money for buying more vaccines to help spread out vaccines globally.
The outcome was a huge success. 302M dollars were raised, and this became more than 26M vaccine doses.
We also got some special participations from president Bidden, Oprah and the Pope.
The event used our solution for proccessing the online donations.
We've created multiple pages for different celebrities to promote, as well as a main page for the event.
We faced two great challenges with this project
This was a popular event broadcasted worldwide and pretty much the first big concert post-pandemy, so we knew we'd receive a lot of traffic.
The issue with this was that the spikes were concentrated on specific times, whenever the concert was live, after that we didn't get much traffic. The visitors all opened the website at the same time when the websites were being shared, and the traffic was pretty high.
We couldn't use any regular auto scaling because we had a pretty small timeframe to scale up, so we decided to go with a different approach.
We've cached everything that we could, and we've also used serverless on some endpoints, this made it a lot easier to scale since it'd just take a few miliseconds to scale up (cold start of a new function), and afterwards it'd keep proccessing in the same speed as usual.
I've ran load tests before hand to make sure we could handle the traffic, and we also shared some links in advance to test it with real traffic.
Since the concert was broadcasted worldwide, we received visitors from all over the world.
Typically servers are concentrated in a region, we always operated mostly in the US so our servers were concentrated in there.
We also solved this using serverless, the website was cached by a cdn with edges worldwide, so the latency was pretty low.
As for the api, since we had serverless we were also able to deploy the endpoints to all regions over the world, this meant that if you were donating in Japan, you'd be doing so in a local server in Japan.
The NOSQL database that we were using also had the option to deploy to all regions, this made it easier to scale, we've configured it to be up and ready with a click of a button, but we ended up not deploying it since we felt comfortable with what we had done already.