go-payroll-engine
Async bulk salary disbursement, built to fintech production standards.
Paying thousands of people at once is a correctness problem, not a CRUD problem. Duplicate payouts, failed retries and compliance are where payroll systems break. And the salary-advance market beside it traps workers in roughly 30 percent interest loans.
An async bulk disbursement engine that batches payouts onto a job queue, dedups aggressively, and treats every payment as idempotent. Compliance with PCI DSS, NDPR, SOC 2 and CBN is designed in from the start rather than retrofitted.
A Gin API in front of GORM, Postgres and Redis, with asynq running the disbursement workers off a queue, Prometheus for observability, golang-migrate for schema, and JWT auth. Provider webhooks feed back through deduplicated handlers.
A Redis-backed Bloom filter gives O(1) duplicate-webhook detection at roughly 1 percent false-positive and zero false-negative. An LRU cache holds per-key rate limiters so each tenant is throttled independently. Idempotency keys in Redis with a 24h TTL make retries safe. asynq provides priority worker queues.
Go for high-throughput concurrent disbursement with predictable latency, a mature async-queue ecosystem in asynq, and a strong fintech tooling story.
Earned-wage access without the debt trap. Instead of a 30 percent loan, an employee draws a slice of pay they have already earned, accrued daily from verified work. Three guardrails keep it healthy: a tapering access curve that shrinks the available percentage as payday nears, an automatic micro-savings skim that locks a small cut of every advance into savings, and a financial-health score that rewards restraint with better terms.
Payroll-as-infrastructure for African SMEs, with the earned-wage-access layer as a humane alternative to predatory advances.