How we engineered Seller

Mercurie
4 min readJul 26, 2020

--

It’s been 4 weeks since we officially launched Seller, a Cloud eCommerce as a service platform purposely built for African small businesses. Seller makes it easy for any small business to create, own and operate their own e-commerce store without needing a developer or having specialised skills. This post looks to share some insights into the engineering and technology behind the making of version 1.

Seller.ng

What is the product? Seller is an eCommerce as a service, cloud platform designed to solve many local and real problems faced by small businesses and retailers in Nigeria and across Africa, which has been hindering growth in the digital era. Some of such problems are digital literacy, awareness of powerful localised digital solutions and dependence on foreign products without great local support.

Seller hopes to solve these three challenges for small business owners by;

- Providing a powerful yet simple to use digital commerce solution,

- Integrating and promoting other critical local solutions, and

- Providing scalable hands-on support to help merchants succeed.

First, Seller was built from the ground up. Yes, it’s not a shopping framework or WordPress plugin. Seller is composed of a series of backend microservices written in Python and Nodejs, hosted serverless in Cloud Run on Google Cloud Platform. The database is not relational but rather makes use of Cloud Firestore’s Transactions to ensure ACID property. The storefront and theme customizer frontend is completely Vuejs, hand baked by one of our awesome engineers, we call #bosslady. The architecture is simple and decoupled, we have some services code-named (after local Nigerian landmarks and some of our favourite things); Olumo, Obudu, Titan, Raven, Mufasa, Zuma, Yankari, Onitsha, Tarkwa etc and each of these services call one another using Google’s PubSub and are scaled based on traffic in real-time.

L-R: Olumo, Mufasa, Obudu, Titan, Raven, Yankari

Secondly, why did we build it like this? Indeed we explored a lot of solutions, iterated several times and after every iteration we discovered that we would need more time and resources to manage other people’s code and library, most especially because they didn’t fit into our vision of providing a long term scalable solution for the needs of African users. One of such solutions we explored because of our love for open source and Python, was Saleor. Saleor was good for a single instance store but not multi-store. At about the same time, the team behind Saleor was planning to change the business model and turn into a managed multi-store SaaS solution. We had contributed to the project but had to take a critical stance on the solution, our vision and roadmap. So we chose to take a different path by building a proprietary solution.

Looking back, we found that one of the advantages of building from the ground up, is that we could push ourselves to finding and solving nuanced problems thereby improving our engineering capacity as a team and as individuals. A simple example is the cold start problem with managed Knative solution on CloudRun, and our continuous integration with Cloud Build, which resulted in a quick solution as a reusable utility called cloudrun_warmer. Experiences like this enable developers continually improve and become world class, and as such we now have one of our software engineers recognized as a Google Developer Expert for Cloud Platform, one of only 15 such experts in Sub Saharan Africa. Another advantage is the ability to create custom integrations and partnerships with other African-focused solutions such as Termii (WhatsApp notifications), Sendbox (local & International shipping) and more upcoming, Paystack and Flutterwave (Established payment processors), thereby giving merchants multiple options and choices.

Finally, I’d like to mention that we have a lot on our roadmap, we think releasing a v1 to help small businesses during this tough period with #COVID19, is the best thing to do at this time while also giving us an opportunity to get feedback from the community. We know some things are missing but we are committed to improving the platform over the long term and helping small businesses accelerate the gains of the digital economy. We can’t wait to share more of what we have upcoming ;)

If you have some thoughts or would like to join the #DigitalMercurieTeam, and help build v2, please drop us a line on Twitter @seller_africa and @digitalmercurie . For more information from our engineering team, visit and subscribe to our blog here.

--

--

Mercurie

Software technology company on a mission to accelerate Africa’s digital economy.