The document discusses clustering the issue tracking application Jira using Terracotta. It identifies common challenges in clustering Java applications, such as files, caches, threads and HTTP sessions. It describes how Terracotta was used to cluster Lucene indexes, home-grown caches and services in Jira. Distributed and shared services were implemented using Terracotta APIs. The session state was left unclustered for simplicity. External plugins were made cluster-aware through new APIs. In summary, clustering Jira required decisions around distributing data vs behavior and providing thread safety while leveraging Terracotta for transparency.