In Chapter 1, A Few Basics, we decomposed this application into four components:
Inventory Service
Availability Service
Booking Service
Billing Service
One approach would be to build our project as a single module and have the code of these four services together.
While it makes the setup quite straightforward, it might impede our ability to deploy these components individually, should it be required for scalability purposes (refer to Chapter 10, Scaling a RESTful Web Service, for discussions on scalability). Instead, we will organize each service into its own individual module.
For the purpose of this section, we will focus on Maven. Our project will be made up of six separate Maven modules: