All wallets get kept on a server at your home that handles keys & generates transactions and communicates with your online server, ssh connection between home server and online server. The only bandwidth used is online server sending requests for new addresses for deposits and withdrawal requests, and home server sending back addresses and signed transactions for online server to publish (or denial of request). An average home connection should be able to handle this even for a massive amount of transactions, lets say you have a very low 100kb/s total bandwidth and each transaction is 1KB total both ways you could still handle 750 withdrawals a minute at peak without queuing.
Along with other checks, home server could also keep its own ledger of customer accounts to detect if online server gets compromised and fraudulent withdrawal requests are being sent. The only downside is possible extended downtime (just delayed withdrawals, site would still be operational) if your power/connection goes out, but I'm sure you would still be at like 99.9%