There's a thing called 0-conf where you accept a transaction even before it's included in a block. This is used by BitPay, the worlds largest Bitcoin payment processor, to accept Bitcoin Cash in just a couple of seconds.
It's safe enough (there's always a risk/reward trade-off) for smaller purchases if you just use a few simple heuristics like requiring a sane fee and checking for double spend attempts for a couple of seconds.