This document discusses Java application design practices to avoid when dealing with sub-100 ms service level agreements (SLAs). It describes how to measure response time and influences on response time from the application, framework, Java virtual machine, operating system, and hardware. The document provides examples from the SPECjbb2012 benchmark and case studies showing the performance effects of different design choices and system configurations. It discusses practices like designing for scalability, using concurrency packages, avoiding unnecessary synchronization, reducing object allocations, caching data, and tuning the JVM, OS, and hardware.