Case study · Stack

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.
Copy this stackolist.com E-commerce platform for small retailers · Brazil · founded 2015

Language

Hosting

Database

  • PostgreSQLspeakerdeck.com

    Main database, with full-text search, a read replica and partitioning.

Data fetching

  • Amazon SQSspeakerdeck.com

    Queues that every service consumes to react to events.

    Why: Packing every election and publishing rule into one synchronous API did not work, so they combined HTTP with pub/sub.

  • Redisspeakerdeck.com

    In-memory data store listed in the 2020 stack.

Backend framework

  • Django REST Frameworkspeakerdeck.com

    Builds the REST APIs of the microservices.

  • Gospeakerdeck.com

    Second language, used for some of the APIs.

  • Loafergithub.com

    Olist's open-source Python dispatcher that every service is built on to consume SQS.

Testing

Code quality

  • pre-commitgithub.com

    Runs Olist's custom lint hooks, published as the hulks project.

Search

AI model

  • Claude Codegithub.com

    Coding assistant developers use through Olist's AI gateway.

Error monitoring

  • Elastic APMspeakerdeck.com

    Monitors API performance, alongside pgHero and django-silk.

  • OpenTelemetrygithub.com

    Traces each background task run by the Django task worker.

WhatsApp and SMS

  • WhatsAppgithub.com

    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.

Sources:speakerdeck.com

Queues hold it together

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.

Sources:speakerdeck.com github.com

Getting ready for Black Friday

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.

Sources:speakerdeck.com opensource.olist.com

Still Django in 2026

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.

Sources:github.com github.com github.com

Also detected on their website

Found on the homepage with the open Wappalyzer rules (HTML, scripts and headers). It shows what runs in the browser, not the whole backend.

  • Cloudflare
  • Cloudflare Bot Management
  • Envoy
  • Google Tag Manager
  • Next.js
  • React
  • Webpack