This document discusses patterns for scaling large search systems to handle big data and large user volumes. It describes how data can be partitioned ("sharded") and replicated across multiple servers to improve scalability. However, this introduces challenges around consistency if servers are not perfectly in sync. The document then presents several patterns for balancing consistency and availability, including full consistency, shard consistency, managed inconsistency, sticky user sessions, and every man for himself. It concludes by advising readers to select a pattern based on important user experience requirements and consider mixing strategies.