Target implementation
The following diagram represents the implementation view of the BrownField PSS microservices system:
As shown in the preceding diagram, as an example, we are implementing four microservices--Search, Fare, Booking, and Check-In. In order to test the application, there is a website application developed using Spring MVC with Thymeleaf templates. The asynchronous messaging is implemented with the help of RabbitMQ. In this sample implementation, the default H2 database is used as the in-memory store for demonstration purposes.
As shown in the preceding diagram, the call from Booking to Fare uses Spring WebFlux. It uses Mono construct to reactively collect remote fare data, as shown in the following code snippet:
public void validateFareReactively(BookingRecord record){ Mono<Fare> result = webClient.get().uri("/fares/get? flightNumber="+record.getFlightNumber() +"&flightDate="+record.getFlightDate()) .accept(MediaType.APPLICATION_JSON...