Our worked example has been pretty simplistic so far. We’re testing a single web server process that doesn’t even have a database, and we’ve used only a single scenario to test it. The real systems you have to work on when you put this book down are probably much more complicated than that, with several services interacting to deliver the behavior you’ve described in your Cucumber features.
In this chapter, we’re going to make our system more enterprisey, splitting the architecture into a frontend and backend so that we can show you how to test these kinds of systems. On the way, we’ll get the chance to explain some fundamental concepts about testing asynchronous systems.