Lunar.
Digital banking has no branch to absorb a bad release.
- Client
- Lunar
- Sector
- Digital banking
- Scope
- App + web
- Stack
- Java / Spring, TypeScript, React
A digital banking product on app and web, covering accounts, payments and the servicing customers expect without a branch.
What made it hard.
Every balance has to be reconstructable from the events behind it, not stored and mutated in place.
Regulatory reporting
Returns and disclosures have fixed formats and deadlines that do not move.
Scheme rules
Card and payment scheme requirements constrain flows before any product decision is made.
Uptime expectation
There is no branch to fall back on, so an outage is the whole service being unavailable.
What we shipped.
A digital banking product on app and web, covering accounts, payments and the servicing customers expect without a branch.
How it holds up.
Append-only records behind every balance, provider failover designed before the happy path, and audit trails written on the same transaction as the change.
The systemEvery balance is derived from an append-only record, and provider dependencies degrade without losing money.
Theirs, from day one.
Repositories, cloud accounts and documentation sat with the client throughout. Senior engineers wrote the production code rather than specifying it.
Ask for the full metrics on a call →More selected work.
All 42 case studies →Building something like Lunar?
Tell us what you are building. A senior engineer replies within one business day. NDA on request.