Atomic database path
Business rules live in PostgreSQL stored procedures so debits, credits, limits, and balances resolve inside one transactional boundary.
Rinha de Backend 2024/Q1 · Python pressure lab
A Flask/Gunicorn/PostgreSQL implementation tuned for a banking API challenge: two Python APIs, one NGINX edge, PostgreSQL atomic procedures, and a 1.5 CPU / 550MB envelope.
class ChallengeEnvelope:
# Rinha de Backend 2024/Q1
TOTAL_CPU = 1.5
TOTAL_RAM_MB = 550
# Request path
EDGE = "NGINX"
API_REPLICAS = 2
API_RUNTIME = "Flask + Gunicorn"
DATABASE = "PostgreSQL procedures"
# Validation
STRESS_TOOL = "k6"
REPORTS_ARCHIVED = 33 implementation mechanisms
Business rules live in PostgreSQL stored procedures so debits, credits, limits, and balances resolve inside one transactional boundary.
The Python service runs as two Flask/Gunicorn containers behind NGINX, tuned for the challenge CPU and memory split.
The site links directly to k6-generated HTML reports and the release workflow so performance claims stay tied to run artifacts.
benchmark dossier
k6 reports are published as static artifacts. Treat these values as historical proof points, then open the reports to inspect the exact run output before making performance decisions.
latest artifact
Open the newest archived k6 HTML report, then compare it with the workflow that generated it.
33 archived stress test runs. Latest first.