This document discusses best practices for scaling Java applications with distributed caching. Some key best practices include: scaling out by adding more cache servers to increase capacity and availability; designing applications for scalability from the start; optimizing applications before adding caching; automating problem detection; and only moving to a distributed cache after fully exhausting opportunities for vertical scalability on individual servers. A distributed cache provides greater capacity but at the cost of additional complexity and slower performance compared to a local cache.