Chapter 3. Reference Architecture Environment
This reference architecture demonstrates an airline ticket search system built in the microservice architectural style. Each individual microservice is implemented as a REST service on top of WildFly Swarm with Undertow as the web server, deployed on an OpenShift image with a supported OpenJDK. The software stack of a typical microservice is as follows:
Figure 3.1. Microservice Software Stack

Each microservice instance runs in a container instance, with one container per OpenShift pod and one pod per service replica. At its core, an application built in the microservice architectural style consists of a number of replicated containers calling each other:
Figure 3.2. Container Software Stack

The core functionality of the application is provided by microservices, each fulfilling a single responsibility. One service acts as the API gateway, calling individual microservices and aggregating the response so it can be consumed easier.
Figure 3.3. Functional Diagram

The architecture makes extended use of Jaeger for distributed tracing. The Jaeger production templates are used to run the backend service with a Cassandra datastore, and tracing data is sent to it from every service in the application.
Figure 3.4. Jaeger Calls

Finally, the reference architecture uses an edge service to provide static and dynamic routing. The result is that all service calls are actually directed to the reverse proxy and it forwards the request as appropriate. This capability is leveraged to demonstrate A/B testing by providing an alternate version of the Sales service and making a runtime decision to use it for a group of customers.
Figure 3.5. Reverse Proxy


Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.