7 Designing a reactive application

 

This chapter covers

  • What a reactive application is
  • Introducing the reactive application scenario used throughout part 2

The first part of this book taught you asynchronous programming with Vert.x. This is key to writing scalable and resource-efficient applications.

It is now time to explore what makes an application reactive, as we strive for both scalability and dependability. To do that, we will focus the following chapters on developing a fully reactive application out of several event-driven microservices. In this chapter, we’ll specify these services.

7.1 What makes an application reactive

In previous chapters we covered some elements of reactive:

  • Back-pressure, as a necessary ingredient in asynchronous stream processing to regulate event throughput
  • Reactive programming as a way to compose asynchronous operations

It is now time to explore the last facet: reactive applications. In chapter 1 I summarized The Reactive Manifesto, which declares that reactive applications are responsive, resilient, elastic, and message-driven.

7.2 The 10k steps challenge scenario

7.3 One application, many services

7.4 Service specifications

7.4.1 User profile service

7.4.2 Ingestion service

7.4.3 Activity service

7.4.4 Public API

7.4.5 User web application

7.4.6 Event stats service

7.4.7 Congrats service

7.4.8 Dashboard web application

7.5 Running the application

Summary