A take on re-implementing channels (WIP- don't merge)

This is WIP and not yet finished.

Please see my comment below about failover handling on the client.