Chapter 6. Wrap-up and Conclusions

In the previous three chapters, we’ve seen how to get started with developing cloud native Java applications using open technologies. As industry understanding of cloud native has evolved and matured, a number of use cases have emerged requiring more sophisticated patterns, such as Reactive, Saga, and CQRS, as well as a general increase in asynchronous execution. These are beyond the scope of this introductory book, but we’ll briefly discuss them here before we finish with our conclusions.

Asynchronous Execution and Reactive Extensions

Traditionally, the execution of business logic in enterprise applications happens synchronously; that is, a single thread usually executes the business logic from the start in the boundary until the business method returns. However, more recently, demand has grown for asynchronous and reactive execution, and subsequently a number of specifications have been enhanced with these features.

JAX-RS, for example, offers ways to asynchronously invoke HTTP calls in the JAX-RS client in both asynchronous and reactive ways, by natively supporting types such as CompletionStage. The same is true for asynchronous JAX-RS endpoint resources that handle the execution of the business logic in separate threads, decoupled from the default HTTP request thread pool.

CDI events are another example where the decoupling of business code can happen in an asynchronous way. Since Java EE 8, CDI events can be fired and handled asynchronously, ...

Get Developing Open Cloud Native Microservices now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.