Programação Reativa (Reactive Programming) vem ganhando cada vez mais popularidade e tem sido cada vez mais utilizada por organizações ao redor do mundo para criar aplicações altamente disponíveis e de baixa latência.

Em 16 de Setembro de 2014 foi lançado o Manifesto Reativo (Reactive Manifesto) que apresenta os princípios da Programação Reativa. Em Novembro de 2014, o Coursera lançou um curso sobre o assunto, e já houve até uma conferência dedicada ao Tema, a React 2014 que ocorreu em São Francisco na Califórnia.

Bibliotecas em diferentes linguagens de programação vem surgindo para facilitar o desenvolvimento de software nesse paradigma: React para Javascript, Reactor, RxJava, Netty Akka, para Java, Reactive Extensions para .NET, Rx.rb para Ruby, além muitas outras iniciativas.

O principal apelo para a adoção desse paradigma de programação é o contínuo crescimento da Internet nos mais diversos aspectos como maior quantidade de usuários, maior quantidade de requests, mais dados, e maior exigência de performance e tempo de resposta, além da intolerância a downtime e maior quantidade de nós de servidores por aplicação necessários para atender a toda essa demanda.

A programação reativa tem 4 pilares:

reactive

Elástico: Reage à demanda/carga: aplicações podem fazer uso de múltiplos cores e múltiplos servidores.

Resiliente: Reage à falhas, aplicações reagem e se recuperam de falhas de software, hardware, e de conectividade.

Message Driven: Reage à eventos (event driven): em vez de compor aplicações por múltiplas threads síncrona, sistemas são compostos de gerenciadores de eventos assíncronos e não bloqueantes.

Responsivo: Reage à usuários: aplicações que oferecem interações ricas e “tempo real” com usuários

Para aprender mais, veja esses vídeos de Martin Odersky (criador da linguagem Scala)

Para ter uma compreensão mais avançada do assunto, descobrir algumas empresas que vêm investindo em programação reativa e incluir ver uma implementação de exemplo, recomendo ver essa apresentação de Jon Brisbin e Stephane Maldini no evento SpringOneGX 2014.

Programação Reativa com Netflix OSS 

A Netflix promoveu um encontro no qual aconteceram diversas palestras sobre Programação Reativa, veja o vídeo e slides do Meetup da Netflix OSS realizado em Julho de 2014:

Livros

Bestseller No. 2
Reactive Systems in Java: Resilient, Event-Driven Architecture with Quarkus
  • Escoffier, Clement (Author)
  • 296 Pages - 12/14/2021 (Publication Date) - O'Reilly Media (Publisher)
Bestseller No. 3
Bestseller No. 4
Modern Java in Action: Lambdas, Streams, Functional and Reactive Programming
  • Urma, Raoul-Gabriel (Author)
  • 592 Pages - 12/12/2018 (Publication Date) - Manning Publications (Publisher)

Aprenda mais

Sua vez

Ainda há pouco conteúdo sobre o assunto, especialmente em português. Que tal você começar deixando um qui comentário sobre suas impressões Reactive Programming? Além disso, te convido a testar o paradigma conhecer as bibliotecas open source, e também compartilhar o que descobrir e aprender.