This document discusses using test doubles called "imposters" to test distributed systems. Imposters act as stand-ins for dependencies to allow injecting faults and testing failure scenarios without relying on the real dependencies. The document provides examples of how imposters can be configured to drop packets, add delays or random payloads to simulate various failure conditions like flakey hardware or network issues. It also mentions future plans to use imposters on the client side to further improve testing of distributed systems.