I still haven't understood why credit cards companies need to go through this complex multi-hop "settlement" pipeline that takes almost a day for transactions to get "processed". Is it because some banks still depend on mainframes doing batch processing?
You want to have 100% uptime for authorize, but correctness isn't strictly required; if you allow too much in charges, you'll probably end up collecting user fees, which is not a negative for the bank. On the other hand, you want exactly once processing for capture, and you don't really need that to have 100% uptime, since the financial industry is built around batch processing.