Stress Test Suite — Grafana K6

Rinha de Backend
K6 Test Suite

An unofficial reimplementation of the Rinha de Backend competition stress tests. Originally written in Gatling/Scala, rewritten in Grafana K6 (JavaScript) for better CI/CD integration and learning purposes.

What This Does

This project provides a comprehensive K6 stress test suite that validates and benchmarks any Rinha de Backend implementation. It simulates real-world transactional load — credits, debits, balance queries — while enforcing the competition's SLA requirements: 98% of responses under 250ms with zero balance inconsistencies.

📚
The original competition tests were written in Gatling/Scala. This is an unofficial reimplementation in Grafana K6 (JavaScript), built for learning purposes and to enable native CLI integration with CI/CD pipelines. It currently serves all of Jonathan's Rinha de Backend implementations (.NET, Rust, Go, Python).
# usage
docker build -t jonathanperis/rinha2-back-end-k6 .

# dev mode → exports to InfluxDB
docker run -e MODE=dev jonathanperis/rinha2-back-end-k6

# prod mode → generates HTML report
docker run -e MODE=prod jonathanperis/rinha2-back-end-k6

5 Parallel Scenarios

The test suite runs 5 scenarios concurrently, simulating realistic transactional load with ramping virtual users, input validation, and balance consistency checks.

validacoes
Input validation — tests invalid types, decimal values, description length limits, null fields. Expects 422/400 responses.
5 VUs · 1 iteration each
cliente_nao_encontrado
Tests requests to non-existent client ID 6. Expects 404 responses.
1 VU · 1 iteration
debitos
Debit transactions with ramping load. Validates balance never exceeds negative limit. Expects 200 or 422.
1 → 220 VUs · 4 min ramp
creditos
Credit transactions with ramping load. Credits should always succeed. Validates saldo/limite consistency.
1 → 110 VUs · 4 min ramp
extratos
Account statement retrieval. Validates JSON structure, balance totals, and last 10 transactions.
10 VUs · 1 iteration each

Built With

Grafana K6
Load testing framework
JavaScript (ES6+)
Test script language
xk6 + Go 1.23
Custom K6 binary builder
InfluxDB
Time-series metrics (dev mode)
Docker
Multi-arch (amd64 + arm64)
GitHub Actions
CI/CD, image publishing

Serves All Rinha Backends

This K6 test suite is used by all of Jonathan's Rinha de Backend implementations via their CI/CD pipelines. Each push to main triggers automated stress tests using this Docker image.