This document discusses bringing reactive programming to enterprise developers. It defines reactive as responding to stimuli without blocking. Reactive programming uses non-blocking I/O and callbacks to build concurrent and distributed systems that are responsive, message-driven, and resilient. The document advocates using reactive techniques with messaging systems like Kafka to build distributed applications and services that can handle failures and elastic workloads. It presents the Quarkus framework as unifying imperative and reactive programming for Java developers.