System Design: CAP Theorem & Availability