System Design: High Availability vs High Consistency