Keiken · Full-time · Feb 2023 — Jan 2024
Async money movement for a benefits marketplace
Backend ownership for flows between partners, clients, and associated companies.


The idea
Settlement cannot live in a request. Money between partners, clients, and associated companies has to move as an async path that still closes the month.
The situation
Keiken is a benefits marketplace. The backend already existed. I learned Java and Spring Boot on the job to extend it without breaking settlement between parties.
How it works
A partner event is ingested, a worker settles the batch, and the ledger is read with filters that would be painful as ad-hoc SQL. The month is about R$120k of movement. If that path is synchronous, one slow partner holds everyone else.
The idea was to treat money movement as messaging plus a scheduled close, then put JUnit around the path so a change in QueryDSL did not silently skip a party.
What shipped
Async flows with Spring Messaging, cron jobs for the batch, QueryDSL for the complex reads, and regression tests on the settlement path.
- 01Partner event ingestedSpring Messaging
- 02Cron settles the batchscheduled
- 03QueryDSL reads the ledgercomplex filters
- 04JUnit guards the pathregression net
- Monthly
- R$ 120k
- Style
- Async
- Tests
- JUnit
The problem
Money had to move reliably across parties. I learned Java and Spring Boot on the job to extend an existing API without breaking settlement.
What shipped
Built async flows with Spring Messaging and cron jobs processing about R$120k per month, plus JUnit coverage and QueryDSL queries.