rinha4.c

Getting Started

Build the app:

make all

Run focused tests:

make test

Run local stack:

docker compose up --build
curl -i http://localhost:9999/ready

Smoke the fraud endpoint:

curl -i -X POST http://localhost:9999/fraud-score \
  -H 'Content-Type: application/json' \
  --data '{"id":"tx-smoke","transaction":{"amount":1,"installments":1,"requested_at":"2026-03-11T20:23:35Z"},"customer":{"avg_amount":1,"tx_count_24h":0,"known_merchants":[]},"merchant":{"id":"MERC-001","mcc":"5912","avg_amount":1},"terminal":{"is_online":false,"card_present":true,"km_from_home":0},"last_transaction":null}'

Build or rebuild index data without Docker when the reference dataset is present:

./build/build-index resources/references.json.gz /tmp/index.bin

Runtime search controls are environment variables in docker-compose.yml, such as INDEX_NPROBE, repair range knobs, and exact fallback controls. Candidate changes must pass local tests and CI benchmark correctness before promotion.

Run docs locally:

cd docs
bun install
bun run dev