  The rise of worldwide Internet-scale services demands large distributed
systems. Indeed, when handling several millions of users, it is common to
operate thousands of servers spread across the globe. Here, replication plays a
central role, as it contributes to improve the user experience by hiding
failures and by providing acceptable latency. In this paper, we claim that
atomic multicast, with strong and well-defined properties, is the appropriate
abstraction to efficiently design and implement globally scalable distributed
systems. We substantiate our claim with the design of two modern online
services atop atomic multicast, a strongly consistent key-value store and a
distributed log. In addition to presenting the design of these services, we
experimentally assess their performance in a geographically distributed
deployment.
