Olawale Lawal

Olawale Lawal

Software engineer working on payments and backend systems. I write about how they're built, mostly in .NET and Go.

Writing

How to Propagate Idempotency Keys to Downstream ServiceslatestForwarding the client's key breaks, and random keys defeat the point. How to derive stable downstream keys for Stripe, Adyen and PayPal, and where they fail.IdempotencyGuard: Idempotency Keys for ASP.NET CoreIdempotencyGuard is Idempotency-Key middleware for ASP.NET Core: atomic claims on Redis, PostgreSQL and SQL Server, fenced writes and caller-scoped keys.Stop Rolling Your Own Transaction Management in .NETWhy TransactionScope is a better way to manage database transactions in .NET than a hand-rolled unit of work.Quorum: A Maker-Checker Approval Engine in GoQuorum is a standalone maker-checker approval engine in Go: serialized votes, outbox-backed webhooks, tenant isolation and real-time SSE updates.Iterating a .NET CI/CD Pipeline From 12 Minutes to Under 5I added automated API snapshot tracking to a four-service .NET backend and watched GitHub Actions build times go from 3 minutes to over 12.All 25 postsThe payments series

Projects

QuorumStandalone maker-checker approval engine. Serialises concurrent votes, delivers webhooks through an outbox and isolates tenants.
  • Go
  • PostgreSQL
  • SSE
BranchGuardStateless GitHub App that applies branch protection rules based on which files a pull request changes.
  • TypeScript
  • Probot
  • GitHub Apps
API Diff ToolSwagger diffing that went from a React SPA to embedded HTML to reusable NuGet packages for ASP.NET projects.
  • .NET
  • OpenAPI
  • NuGet
Auto-LoggingTurns verbose logging on when errors appear and off once they resolve, so nobody has to ask for debug logs.
  • .NET
  • OpenTelemetry
  • Grafana
IdempotencyGuardIdempotency-Key middleware for ASP.NET Core. Retries and concurrent duplicates run your handler once, on Redis, PostgreSQL or SQL Server.
  • .NET
  • Redis
  • PostgreSQL
  • SQL Server

Knock, knock.