The brief
A payments platform clearing six figures of transactions a month cannot treat a failed payment as an edge case. The goal was a platform that stays up and recovers gracefully when a gateway does not.


The approach
Node microservices on AWS, with queues (SQS) between services so work is retried safely instead of lost. Gateway handling and retry logic were optimised against real failure patterns, and the React front end was kept honest about payment state at every step.



Reference architecture
How the platform fits together: clients behind an edge and identity layer, independently deployable Node.js services, an event backbone with an outbox and retries, and service-owned PostgreSQL databases, with card payments handled by an external compliant provider.

What I owned
- React front end and Node microservices, end to end
- Gateway integration and retry optimisation
- Queue-driven processing on AWS SQS
- Reliability work behind a 99.9% uptime record