Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Spring Webflux + ReactiveX + MongoDB = POKEDEX

Spring Webflux + ReactiveX + MongoDB = POKEDEX

Java é uma linguagem poderosa podemos contruir sistemas de grande escala e permanentes, mas uma cara veio ganhando bastante espaço com um novo módulo do SpringBoot, o tal: Spring WebFlux. Com esse novo módulo adicionado conseguimos criar sistemas com paradigma de reatividade.
Nessa talk vou mostrar como que a reatividade funciona, conceitos, como que a lib ReactiveX trabalha por debaixo dos panos e como eu construí um Pokedéx usando tudo isso!

Link da live: https://www.youtube.com/watch?v=9QRQx5sZmCM
Link do Repositório: https://github.com/anabneri/demo-nergirlz-webflux

Avatar for Ana Neri

Ana Neri

May 21, 2020
Tweet

More Decks by Ana Neri

Other Decks in Technology

Transcript

  1. Spoilers( ); @anabneri Um pouco de JVM O que é

    reatividade Spring Webflux - intro Spring Webflux - arquitetura Reactor Por que MongoDB pra reatividade? DEMO!
  2. @anabneri Aplicações orientadas a um alto número escalável, os usuários

    querem a todo o momento produtividade e assertividade Funcionalidade semelhante a Threads!
  3. Programação Reativa pode-se dizer que é um modelo de programação

    em fluxo de dados, em sua maioria assíncronos, em conjunto com o roteamento de eventos @anabneri
  4. @anabneri Assíncrono são duas tarefas que são executadas simultaneamente Um

    dos pilares de programação reativa e seu modelo é a ideia de fluxo de dados “streams” que podem ser criadas através de variáveis discretas
  5. @anabneri Pode-se entender então por Stream como uma sequência de

    eventos que são ordenados por tempo, na qual só pode enviar três valores: VALOR, ERRO, CONCLUÍDO Esses eventos são conhecidos como: onNext, onError, onCompleted
  6. @anabneri Request Canal Futuro Data Flows do Servidor Servidor Netty

    Fila de eventos Loop de eventos ClasseHandler Controller EndPoint Callback EndPoint Funcional evento 1 evento 2 evento N 1 - canal é criado 2 - registrado com um event loop 3 - está ativo 1 - Ivativo 2 - event loop não registrados 3 - fechado Cliente não-bloqueante 1 2 3 - 1 3 - 2 4 5 6
  7. @anabneri - Fluxo reativo com NoSQL - Uma interface para

    trabalhar com o Mongo Atlas - Tem uma dependência com o Webflux
  8. @anabneri - Fluxo reativo com NoSQL - Uma interface para

    trabalhar com o Mongo Atlas - Tem uma dependência com o Webflux Vamo de demo bb @anabneri