Programação reativa com JDK 9 Flow API

tdc2017-florianpolis-trilha-java-programacao-reativa-com-vertx-6-638

O que é a Programação Reativa?

A programação reativa é sobre o processamento de um fluxo assíncrono de itens de dados, onde os aplicativos reagem aos itens de dados à medida que eles ocorrem. Um fluxo de dados é essencialmente uma seqüência de itens de dados que ocorrem ao longo do tempo. Este modelo é mais eficiente em termos de memória porque os dados são processados como fluxos, em comparação com a iteração sobre os dados na memória.

No modelo de Programação Reativa, existe um Editor e um Assinante. O Publisher publica um fluxo de dados, ao qual o Assinante está assinado de forma assíncrona.

O modelo também fornece um mecanismo para introduzir funções de ordem superior para operar no fluxo por meio de processadores. Os processadores transformam o fluxo de dados sem a necessidade de alterar o Editor ou o Assinante. O processador (ou uma cadeia de processadores) se sente entre o editor e o assinante para transformar um fluxo de dados para outro. O Editor e o Assinante são independentes da transformação que acontece com o fluxo de dados.

push

Por que a programação reativa?

  • Código mais simples, tornando-o mais legível.
  • Resumos fora do código da placa da caldeira para se concentrar na lógica do negócio.
  • Resumos longe dos problemas de encadeamento, sincronização e concorrência de baixo nível.
  • O processamento de fluxo implica memória eficiente.
  • O modelo pode ser aplicado em quase todos os lugares para resolver quase qualquer tipo de problema.

JDK 9 Flow API

As APIs Flow no JDK 9 correspondem à Especificação dos fluxos reativos, que é um padrão de fato. A Especificação de fluxos reativos é uma das iniciativas para padronizar a programação reativa. Várias implementações já suportam a Especificação de fluxos reativos.

A Flow API (e a API Reactive Streams), de certa forma, é uma combinação de idéias dos padrões de Iterator e Observer. O Iterator é um modelo de tração, onde o aplicativo extrai itens da fonte. O Observador é um modelo de empurrão, onde os itens da fonte são empurrados para o aplicativo. Usando a Flow API, o aplicativo inicialmente solicita N itens e, em seguida, o editor empurra na maioria dos N itens para o Assinante. Então é uma mistura de modelos de programação Pull and Push.pull-push

Fonte: https://angoladevelopers.wordpress.com