5 answers

There is no cluster to cluster failover concepts in Swift. If you only had 2 boxes to start with, I'd make them both part of the same cluster each running each service (proxy, account, container, object, etc.) and then use round-robin dns (or better yet, an active load balancer) to route traffic to the two.

I think maybe I'm misunderstanding your question. The services would communicate because that's how Swift was written, to have services that communicate. The All-In-One setup you mention is emulating 4 nodes worth of services on one machine for testing and development. So, an All-In-One would have 4 copies of the account, container, and object services all running as well as one proxy service to tie them together. On a production Swift cluster (you may want to read through the multi server install doc) these services would run on various separate machines.

This isn't the greatest document, I've just started on it, but maybe it will help a little: