How Olist built a marketplace hub on Python, Django and queues
Olist helps small Brazilian merchants sell on the big marketplaces and run their stores. Its stack is Python and Django REST Framework end to end, with more than a hundred microservices talking through Amazon SQS queues.
Receives incoming WhatsApp webhooks through a Django app.
How they built it
A Python shop from the start
In 2018 Olist described its architecture in four layers. APIs are RESTful entry points written in Django, Go or Apistar. Services hold the business rules, read and write the databases and consume SQS queues. Brokers group services around one goal, such as publishing to a given marketplace, and apps are the user-facing interfaces with no storage of their own.
When a seller changes a price, the product has to be re-evaluated and republished to several channels. Cramming all those election and publishing rules into one synchronous API did not hold up, so Olist pairs HTTP with publish and subscribe.
Every service is built on Loafer, an open-source Python library from Olist that consumes Amazon SQS queues asynchronously and keeps message providers apart from consumers.
By 2020 Olist ran more than a hundred microservices on Python 3, Django REST Framework, Heroku, PostgreSQL and a long list of AWS services. To survive Black Friday, the team restructured database relations, turned on Postgres full-text search, added a read replica and partitioning, and brought in caching and async code.
They watched performance with Elastic APM, pgHero and django-silk, load tested with Siege and Locust, and released small libraries like a rapidjson renderer for Django REST Framework.
Olist's public repositories show the same foundation today. Recent projects include an async worker for django-tasks-db with OpenTelemetry tracing and a Django app that receives WhatsApp webhooks.
The team also built olist-code, a local proxy that routes Claude Code and opencode through Olist's own AI gateway, with company login and per-model usage tracking.