On distributed systems, the only thing that matters is visibility