1) Reactive programming is a new programming paradigm that is asynchronous and non-blocking, treating data flows as event-driven streams. 2) Traditional REST APIs are synchronous and blocking with limitations on concurrent users, while reactive programming supports asynchronous operations, uses fewer threads, and enables back pressure on data streams. 3) Key aspects of reactive programming include reactive streams specifications, publishers that represent data sources, subscribers, and asynchronous non-blocking libraries like RxJava and Project Reactor that implement the specifications.