Blitzcommerce - A platform for empowering e-commerce stores (filtering widget example)
An application example: a custom filtering for a leading independent supplier of marine parts

There are many e-commerce platforms on the market: Bigcommerce, Shopify, Magento, etc. If you want to customize the UI part, it is easy, they all support theme modifications/plug-ins. However, if you need to have some kind of custom server-side logic (for example, custom filtering, advanced product options, or linked products), you are on your own.
There are only two ways to implement this type of function: either find a third-party system that does what you need (if it exists and works well), or implement a custom solution just for the task at hand.
In this case study we use a custom filtering widget built for a Bigcommerce store as an example.
The customer already have had a third-party widget in place, but it was very slow. It was so slow that it affected the SEO score pretty badly. So one of one main priorities was the performance.
We've implemented a universal platform that provides the core functionality to build any kind of a custom server-side logic on top of it.
It consists of three services and two databases:
The platform-specific 'Snapshotter' service (build with Python) that just copies over all the products from a store to a MongoDB database;
The client-specific 'Processor' service (build with Go) that reads data from the MongoDB, converts it into the required format and saves it into a ReindexerDB database;
The client-specific 'API Server' (Go) that performs queries to Reindexer and provides API endpoints for the UI.
The 'Processor' can (optionally) have a custom UI, so the customer can tweak/enrich the data.
Python is great to work with data structures, so it's an obvious choice for pulling data from an e-commerce system. MongoDB is a go-to solution to store unstructured data.
The second part is more interesting. We've chosen the ReindexerDB for storing processed data as it offers a great flexibility with incredible speed and without too much of recourse demands. The native language to use Reindexer is Go, so it was used for 'processor' service. At the same time, Go offers great performance, so we used it for the API Server too.
As an experiment, we hosted ALL the services and databases above on the minimum size VPS instance (with cost $4/month) and performed load-testing: we got 1000 RPS without any issues.