🐍 Rinha de Backend 🐍

This project was produced for a participation in a community driven challenge that can be found here.
The main challenge idea is not the api itself, but the optimization to handle a stress test close to a ddos, using only 1.5 vCPU and 3GB of RAM.
This version does not attempt to be a production like code and does not apply much of good design standards, everything like that are a completely overengineering to the challenge propose.
The main features applied to increase performance was:

  • asynchronous everywhere due to the i/o bound characteristics of the challenge.
  • background task queue and bulk insert to creation endpoint.
  • cache for people queries.
  • searcheable generated column and trigram index for 'like' query.
  • unix socket connection between nginx and api's nodes.

it reached 21' position at challenge and 1' made in python.

Stack:

  • Python
  • Sanic
  • PostgreSQL
  • Redis
  • Nginx

results can be found here:
https://iancambrea.github.io/rinha-python-sanic/rinhabackendsimulation-20230823140802726/