The fact that you can buy gas by credit card as quickly as you can, with no human intervention, is pretty cool. And if you have one of those "speed pass" thingies, it's exactly like the way people buy things in the future in SF; "Joe waved his credit chit, and...".
But even though it's "fast enough", I still spend 30 seconds every time I get gas wondering what's going on in those 30 seconds. So now you can wonder with me.
I put the credit card in. It waits 10-15 seconds, evaluating billions of machine instructions, and then finally computes that it needs to ask me the question "Credit or Debit?". Ten or fifteen seconds later, after evaluating a few billion more instructions, authorization is complete and I can start pumping gas.
One of these delays can be explained by the time it takes to establish a network connection with some busy server somewhere, and wait while that server executes a slow database transaction. But what is the second wait for? Why can't it ask me "Debit or Credit" immediately, without doing any computation at all, and then initiate whatever network transaction is required afterwards?
A second wait after I'm finished pumping makes sense. Interaction with the remote transaction system is required twice, once to say "authorize charges of up to $40" and once to say "Charge this card $18.34". But I can't figure out why there are two long waits before I start to pump.