Java is one of the most popular programming languages on planet Earth; in fact, it is consistently placed in the top two or three of many popularity rankings.1 When practicing chaos engineering, you are likely to work with systems written in Java. In this chapter, I’m going to focus on preparing you for that moment.
You’ll start by looking at an existing Java application to come up with ideas for chaos experiments. Then you’ll leverage a unique feature of the Java Virtual Machine (JVM) to inject failure into an existing codebase (without modifying the source code) to implement our experiments. Finally, you’ll cover some existing tools that will allow you to make the whole process easier, as well as some further reading.