Just curious - whats the stack you guys run ?
I'm wondering what do you use to call these external processing APIs. I assume these are blocking calls.
There's a good writeup by Oliver, our head of engineering, about our tech stack on our blog[1] with an accompanying Kubecon talk[2].
TL;DR- Largely Go microservices running on k8s, with http-based RPC calls for synchronous communication, and kafka for asynchronous communication.
As for sending and receiving of this kind of payment message, they are largely async but it does depend on the payment system we're talking about. When we build our own FPS gateway we're going to have to have something to manage "sessions" (TCP connections) which will block waiting for a response to an individual payment messages. Right now our communication with our third party Gateway is via a queue.
[1]: https://monzo.com/blog/2016/09/19/building-a-modern-bank-bac...
We have learnt a lot from you guys as we build out similar systems in India. Thank you for putting this stuff out!
Quick question that I have always wondered about - would you have used something like Uber Cadence (https://github.com/uber/cadence) as the core of your infrastructure if it had been available back thhen ?