It is a microservices-based approach, with both messaging and API calls. As discussed in Chapter 8, Modeling Data, messaging systems allow scalability and resiliency. Service-to-service API calls are useful when a quick/in-line response is needed.
The high-level solution architecture is described in the following diagram:
The following sections describe the search and booking services in detail.