This document discusses Vert.x, an open source tool-kit for building reactive applications on the JVM. It addresses common problems with enterprise solutions like multithreading, scalability and performance. Vert.x uses an event-driven architecture with non-blocking code and an event bus for communication. It allows building distributed systems as microservices with modules that can be deployed on servers or clients. While powerful, it also presents challenges around debugging, callbacks and sharing objects between verticles.