This document discusses reactive applications and the tools used to build them. Reactive applications are event-driven, scalable, resilient, and responsive. They react quickly to events, failures, loads, and through user interfaces. Key tools for building reactive applications include actors, agents, futures, and functional reactive programming. Actors communicate asynchronously through message passing. Agents are reactive memory cells that update asynchronously. Futures allow non-blocking composition. Functional reactive programming uses streams to model events over time.