Como a Olist montou um hub de marketplaces com Python, Django e filas
A Olist ajuda pequenos lojistas brasileiros a vender nos grandes marketplaces e a tocar a loja. A stack é Python e Django REST Framework de ponta a ponta, com mais de cem microsserviços conversando por filas do Amazon SQS.
Copiar stackolist.com Plataforma de e-commerce para pequenos lojistas · Brasil · fundada em 2015
Em 2018, a Olist descreveu a arquitetura em quatro camadas. As APIs são portas de entrada REST escritas em Django, Go ou Apistar. Os services guardam as regras de negócio, leem e gravam nos bancos e consomem filas do SQS. Os brokers juntam services com um objetivo comum, como publicar num marketplace específico, e os apps são as interfaces, sem banco próprio.
Quando um lojista muda um preço, o produto precisa ser reavaliado e publicado de novo em vários canais. Concentrar todas essas regras de eleição e publicação numa única API síncrona não deu certo, e a Olist passou a combinar HTTP com publicação e assinatura de eventos.
Todo service é feito sobre o Loafer, biblioteca Python open source da Olist que consome filas do Amazon SQS de forma assíncrona e separa quem produz a mensagem de quem consome.
Em 2020, a Olist já rodava mais de cem microsserviços em Python 3, Django REST Framework, Heroku, PostgreSQL e uma lista grande de serviços da AWS. Para aguentar a Black Friday, o time reorganizou relações no banco, ligou a busca full-text do Postgres, criou réplica de leitura e particionamento e adotou cache e código assíncrono.
O desempenho era acompanhado com Elastic APM, pgHero e django-silk, os testes de carga rodavam com Siege e Locust, e saíram bibliotecas pequenas como um renderer com rapidjson para o Django REST Framework.
Os repositórios públicos da Olist mostram a mesma base hoje. Entre os projetos recentes estão um worker assíncrono para o django-tasks-db com rastreamento em OpenTelemetry e um app Django que recebe webhooks do WhatsApp.
O time também criou o olist-code, um proxy local que passa o Claude Code e o opencode pelo gateway de IA da própria Olist, com login da empresa e controle de uso por modelo.