Those familiar with the concept of event-driven architecture (EDA) may have noticed that it closely resembles the idea of a reactive system. Their descriptions use very similar language and diagrams. The difference is that EDA deals with only one aspect of a software system—the architecture. The idea of a reactive system, on the other hand, is more about the code style and execution flow, including an emphasis on using asynchronous data streams, for example. So, a reactive system can have EDA, and EDA can be implemented as a reactive system.
Let's look at another set of examples that provides a glimpse into how a reactive system may look, if implemented using Vert.x. Notice that the Vert.x API has two source trees: one starts with io.vertx.core, and the other with io.vertx.rxjava. Since we are discussing reactive programming, we are going to use packages...