1 Vertx, asynchronous programming and reactive systems

 

This chapter covers:

  • What is Vert.x
  • Why distributed systems cannot be avoided
  • What are the challenges in programming resource-efficient networked applications
  • What is asynchronous and non-blocking programming
  • What is a reactive application and why asynchronous programming is not enough
  • What are the alternatives to Vert.x

We developers live in a industry of buzzwords, technologies and practices hype cycles. I have long taught to university students elements for designing, programming, integrating and deploying applications, and I have witnessed first-hand how complicated it can be for newcomers to navigate in the wild ocean of current technologies.

Asynchronous and reactive are important topics in modern applications and my goal with this book is to help a large audience of developers understand the core concepts behind these terms, gain practical experience, and recognize when there are benefits in these approaches. We will use Eclipse Vert.x, a toolkit for writing asynchronous applications that has the added benefit of providing solutions for the different definitions of what "reactive" means.

Ensuring that readers understand the concepts is a fundamental priority for me with this book. While I want to give you a solid understanding of writing Vert.x applications, I also want to make sure that you can translate skills to other similar and possibly competing technologies, now or 5 years down the road.

1.1  Being distributed and networked is the norm

1.2  Not living on an isolated island

1.3  There is no free lunch on the network

1.4  The simplicity of blocking APIs

1.5  Blocking APIs waste resources, increase costs

1.6  Asynchronous programming with non-blocking I/O

1.7  Multiplexing event-driven processing: the case of the event loop

1.8  What is a reactive system?

1.9  What else does reactive mean?

1.10  What is Vert.x?

1.11  Your first Vert.x application

1.11.1  Preparing the project

1.11.2  The VertxEcho class

1.11.3  The role of callbacks

1.11.4  So is this a reactive application?

1.12  What are the alternatives to Vert.x?

1.13  Summary

sitemap