Design a geographically distributed application

Build an application that spans multiple geographic locations for high availability and resiliency.