finds.dev← search

// the find

nutcas3/lets-bet

★ 150 · Go · MIT · updated Jun 2026

Tier-1 betting platform for Kenya, Nigeria, Ghana. Sports betting, crash games, M-Pesa/Flutterwave payments, real-time WebSocket odds, BCLB compliance. Go microservices with NATS.

A Go microservices betting platform targeting Kenya, Nigeria, and Ghana with sports betting, crash games, M-Pesa/Flutterwave payments, and BCLB compliance built in. The architecture is genuinely thoughtful — separate services for wallet, engine, games, and settlement with NATS for inter-service messaging. This is for developers building or studying fintech/gambling platforms in African markets.

The wallet implementation uses optimistic locking with version columns and explicit FOR UPDATE, which is the right approach for financial concurrency — not something you see done correctly in hobby projects. The tenant isolation pattern (country_code column on every table, tenant-specific adapters under internal/tenant/) keeps country-specific logic out of the core domain cleanly. The provably fair crash game has actual tests and a verification endpoint, not just a claim in the README. The observability stack is production-grade: OpenTelemetry tracing, Prometheus RED metrics, structured JSON logging, and health checks with dependency probes.

The performance benchmarks table is pure fiction — '100,000+ concurrent users: Implemented' with no methodology, no test harness results, no numbers. The load tests in loadtests/k6/ exist but there's no evidence they were run against this code or that the targets were met. The multi-tenant design using country_code columns rather than schema-per-tenant means a bug in a query predicate can leak one country's data to another with no hard boundary — fine for a prototype, a liability in production. There are no real sports odds providers wired up by default: the Sportradar and Genius Sport clients exist but require paid API keys with no fallback or mock, so running a full end-to-end locally means the betting engine has no data. The license is proprietary, which makes it odd to be public — contributors and adopters have no clarity on what they're allowed to do with it.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →