데이터나 이벤트 변화의 반응에 초점을 맞춘 프로그래밍이다.
사람은 비동기 방식 또는 이벤트 기반 시스템을 다룰때 컴퓨터처럼 생각하기 어렵다. 리액티브 프로그래밍을 사용하면 비동기 방식 혹은 이벤트 기반 시스템을 다룰 때 컴퓨터처럼 생각하지 않아도 된다. 리액티브 함수형 프로그래밍이란 동시성과 병렬성의 해결이다. 즉 비동기 요구사항을 구현했을 때 콜백 지옥 문제를 해결하는 것이다. RxJava는 명령형 방식의 위험을 회피하기 위해 선언적 접근을 사용한다.
단 하나의 이벤트 스트림만 처리하는 경우나 수많은 이벤트 스트림이 독립적인 경우에도 명령형 프로그래밍의 구현이 복잡하지 않기 때문에 괜찮다. 하지만 여러 이벤트들을 묶어 처리하는 것 처럼 복잡한 경우 명령형 접근 방식을 사용하면 동시성 문제 등 복잡함이 극도로 증가한다 반면 리액티브 함수형 프로그래밍은 복잡도가 명령형에 비해 현저히 낮다.
명령형 프로그래밍과 함수형 프로그래밍은 서로 대척 개념으로 사용되는데 리액티브 함수형 프로그래밍은 궁극적으로 명령형 프로그래밍을 함수형 프로그래밍으로 추상화한 것이다. 즉 하나의 접근 방식 명령형 시스템상의 추상화이다.