Live data from Hacker News

Cell-based architecture for resilient payment systems

americanexpress.io

21–30 of 66 posts

Re: Cell-based architecture for resilient payment systems

#21

All i can see is a giant single point of failure called the Global Transaction Router.

GLBs aren’t SPOFs. They are typically deployed around the world redundantly, often using Anycast IPs or using DNS geographic and failover records, and are stateless. Think AWS Global Accelerator and Route 53 as an example. The architecture diagram is a high level simplification.

Re: Cell-based architecture for resilient payment systems

#22
post #8

American Express tech is some of the worst in the world among big companies. All of the value in the company is just in the branding. They put some work into the mobile app and the website, but other than that, its a facade.

A few years ago someone kept signing up for loads of bank accounts/credit cards in my name, with my address. I’m not sure what the point of it was. But while everyone else happily sent cards and stacks of welcome paperwork to me, Amex were the only one that contacted me and told me they’d detected something weird in the signup. They gave me some helpful advice to resolve that situation too.

I froze my credit with the 3 big credit agencies in the US years ago when someone attempted to open multiple Dell and other company accounts in my name. Easy enough to unfreeze for a temporary period of time when I need it.

Re: Cell-based architecture for resilient payment systems

#25
Whole lot of nothing.

This isn't about payment technologies, it's not about isolating transactions, it's about scaling the middle layer. What's worse it's not even explained what middle layer does.

No info on how routing works, no info on data synchronization.

Folks just learning Kubernetes and write extremely abstract stuff.

Re: Cell-based architecture for resilient payment systems

#26

As Reddit already pointed out, this is nothing novel.

“They reinvented Erlang OTP.” - Reddit

Don't know if Joe Armstrong ever said anything like it, but I would propose naming an Erlang/OTP analogue of Greenspun's tenth rule (the one about C projects containing ad-hoc, buggy implementations of Lisp) for him.

Re: Cell-based architecture for resilient payment systems

#27
microservices / clusters / zones - really all of these are other "cell-based" architectures as well. there is absolutely no written rule that a microservice was just an API or a singular service, it basically can be a independent instance that is testable/usable/gives value on itself.

that said: still a nice write up, learning about some of the architectural choices that AMEX makes is definitely insightful (and relavent/useful to what i am working on right now as well!)

Re: Cell-based architecture for resilient payment systems

#28

All i can see is a giant single point of failure called the Global Transaction Router.

GLBs aren’t SPOFs. They are typically deployed around the world redundantly, often using Anycast IPs or using DNS geographic and failover records, and are stateless. Think AWS Global Accelerator and Route 53 as an example. The architecture diagram is a high level simplification.

GLBs absolutely can be SPOF for certain kind of administrative mistakes.

Re: Cell-based architecture for resilient payment systems

#30
post #13
post #9

Nobody uses Amex for payments, so the system isn't ever under high load. Just kidding! I find the idea quite good, and have to assume that the amount of payment fails they experience due to partitions/outages isn't very high and that the post-payment reconciliation and reclamation process gives them the liberty to rank availability a bit higher than correctness. One thing that looked a bit shaky was the interplay bet…

>To me that seems to create a window where it might route to the wrong cell due to an outdated routing state. But if the router sends to the wrong cell the cell will either send it back to be rerouted or it will fail and the router will try again (or report back the failure so upstream can try again I assume)

That would be the good case.

But what if the cell doesn't know that, and it's holding, for example, a stale account number?

Post reply on HN