Jet wrote an e-book with recipes to get your toddler to eat healthy, called "Op!". For Jet, we created an online shop where customers can order and receive the e-book directly in their email. Of course this was built using our favorite e-commerce framework Vendure.io. You can check out the live site at ophetboek.nl. This article talks about the traffic we handled after launch.

After the first interview, it was clear that we could expect a lot of traffic, in both visitors and in actual books ordered when the site would launch. How do we handle that with the Pinelab shops? How did we do?

TL;DR: Static HTML pages built with Gridsome, hosted on Netlify, with autoscaling Vendure instances on Google Cloud Run.

Amount of visitors - frontend

Our first line of defense is the frontend. How do we handle large amounts of visitors?

E-book launched on the 27th

Not all visitors will interact with the site: some will just view the site and leave. This should be handled without interaction to the backend.

So, we built the frontend of the site with static HTML pages, using Gridsome and Netlify. That means we rebuild the site every time something changes to the product in the backend. It goes like this:

  1. The e-book's price changed by an administrator in Vendure.
  2. A webhook is sent to Netlify, telling Netlify to update the site.
  3. Netlify runs gridsome build
  4. Gridsome pulls product data from Vendure and creates static HTML pages with all the product details in it.
  5. The pre-built HTML pages are served by Netlify

So, for just displaying the page with the e-book details to the customers, we don't need any servers at all!

Google also likes our static site

A very welcome addition is that our site performs very well and is SEO friendly.

Placed orders - backend

Conversion is about 18% (which is really great), so 18% of the visitors visiting the site, also placed an order. Placing an order means calls to the backend are made:

  1. Add item to order
  2. Set customer email on order
  3. Handle payment via Mollie

How to handle large amounts of traffic on the backend?

On busy moments, Cloud Run scales to multiple instances

All Pinelab shops are deployed on Google Cloud run, which supports autoscaling. When there is too much CPU or Memory usage, or high request latency, we start another instance to handle new requests. When the amount of placed orders settles down, the extra instances are turned off again.

Serverless e-commerce: Vendure on Google Cloud Run
Google’s Cloud Run is a scalable, containerized, fully managed serverless platform. It’s cheap and handles infrastructure and scaling for us. Sounds perfect to run a headless Vendure instance on, right?
More information on how to run Vendure on Google Cloud Run

That's it, that's how we manage heavy traffic sites at Pinelab!


Would you also like to sell e-books, need a crazy superfast autoscaling webshop, or just have a question? Ask us anything:

Share this post