Pode-se dizer que a programação reativa é uma versão extendida e mais poderosa do . Dada a premissa de termos objetos observáveis como porta de entrada do programa, um dos pilares do modelo reativo é a idéia que “fluxos de dados” (que passaremos a chamar de streams) possam ser criados a partir de qualquer coisa: variáveis discretas, entradas de dados, propriedades da aplicação, ou como nos exemplos citados antes, eventos de UI ou entradas de aplicações externas…o importante a destacar aqui é que, independente de como a entrada do stream é construída, o código de manipulação dos eventos é o mesmo. Por exemplo, seu feed do Twitter, ou o listener de um tópico do Kafka, poderiam ser consumidos da mesma maneira que o click de um botão. O stream passa a ser apenas a abstração de uma origem de dados (potencialmente (e principalmente!) assíncronos), que emite valores de forma contínua, sobre os quais você pode reagir de acordo.
https://elo7.dev/programacao-reativa/