About this guide
We assume that the reader is familiar with the Java programming language and its ecosystem.
We will start from a wiki web application backed by a relational database and server-side rendering of pages; then we will evolve the application through several steps until it becomes a modern single-page application with “real-time”.[1] web features. Along the way you will learn to:
Design a web application with server-side rendering of pages through templates, and using a relational database for persisting data.
Cleanly isolate each technical component as a reusable event processing unit called a verticle.
Extract Vert.x services for facilitating the design of verticles that communicate with each other seamlessly both within the same JVM process or among distributed nodes in a cluster.
Testing code with asynchronous operations.
Integrating with third-party services exposing a HTTP/JSON web API.
Exposing a HTTP/JSON web API.
Securing and controlling access using HTTPS, user authentication for web browser sessions and JWT tokens for third-party client applications.
Refactoring some code to use reactive programming with the popular RxJava library and its Vert.x integration.
Client-side programming of a single-page application with AngularJS.
Real-time web programming using the unified Vert.x event bus integration over SockJS.
Note | The source of both this document and the code examples are available from https://github.com/vert-x3/vertx-guide-for-java-devs. We welcome issue reports, feedback and pull-requests! |