The infrastructure
behind a real
cross-border FX system.
Corex didn't start as code. It started as a WhatsApp operation moving AOA ↔ ZAR by hand — and every architectural decision below exists because I lived the operational problem it solves.
Built from operational friction,
not from a tutorial.
Before a single line of Java, the business ran on messages, spreadsheets and trust. The architecture is a direct translation of those real constraints into a system.
How a single exchange
moves through the system.
From the moment a client requests an exchange to final settlement and audit. Scroll horizontally to follow the full path.
Every transaction is
a finite set of states.
The lifecycle is explicit. A transaction can only move forward through defined transitions — and any deviation routes to a controlled terminal state.
The constraints that
shaped the system.
What it runs on.
A deliberately boring, proven stack — chosen so the interesting complexity lives in the domain logic, not in the infrastructure.
This is how I think
about your system too.
If you have an operational problem that needs to become real infrastructure — structure first, then execution — let's talk.