Systems that run across continents and hemispheres, rather than across racks in a single data center, are becoming increasingly necessary; developers deploy their applications across multiple clouds or locations for redundancy and compliance and to push content closer to their users. Tyler McMullen explains why such systems must have fundamentally different designs than what we’re used to. Without fundamentally different architectures from what we’ve done in the past, these systems become burdens to both their operators and their users. Tyler offers an overview of some of the incredible approaches for designing these systems, including lattices, eventual consistency, CRDTs, and consistency analysis, and discusses the fundamental techniques of such systems: back pressure, randomization, partial availability, and caching. Tyler ends by covering the differences in mental models that must be adopted in order to design and implement globally distributed systems as well as some lessons learned from real-world implementations.