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

Reactive Programming no mundo Java

Reactive Programming no mundo Java

Trilha Java TDC 2015: A programação reativa permite trazer desenvolvedores para um próximo nível no quesito concorrência no server-side, tornando as preocupações como thread-safety e sincronização mais fáceis de lidar. Nesta talk mostramos os pilares da programação reativa e quais as oportunidades que os desenvolvedores podem ter utilizando este paradigma, que fazem empresas de sucesso, como a Netflix, terem uma arquitetura excelente para o seu negócio.

3c1b9c8d515093124b8c081107d4830c?s=128

Felipe Mamud

July 25, 2015
Tweet

Transcript

  1. Felipe Mamud @ftmamud Raphael Almeida @raphait Reactive Programming no mundo

    () -> “Java”
  2. Agradecimentos

  3. None
  4. INTERNET USERS 2.4bi 2012 INTERNET USERS 3.01bi TENS OF SERVERS

    Fontes: http://recode.net/2014/05/28/meeker-as-internet-user-growth-slows-the-real-driver-is-mobile-usage/ http://www.slideshare.net/wearesocialsg/digital-social-mobile-in-2015 RESPONSE TIME SECONDS CLOUD-BASED CLUSTER MULTICORE OFFLINE MAINTENANCE REAL TIME MILLISEC/MICROSEC 100% UPTIME FAST DATA GIBABYTE DATA BIGDATA PETABYTES 2015
  5. Como criamos sistemas mais robustos, mais resilientes, mais flexíveis e

    muito mais capazes de responder às exigências de hoje em dia?
  6. Precisamos de sistemas que irão: • Reagir a eventos (Event-Driven)

    • Reagir a carga (Scalable) • Reagir a falhas (Resilient) • Reagir a usuários (Responsive)
  7. Reactive Programming “Readily responsive to a stimulus”

  8. O que são sistemas Reativos? Sistemas criados como Reativos são

    muito mais flexíveis, desacoplados e escaláveis. Isso os torna mais fáceis de desenvolver e manter. São mais tolerantes a falhas e quando elas ocorrem são tratadas com elegância ao invés de desastre. Sistemas Reativos são responsivos, dando aos usuários feedbacks mais interativos. Fonte: http://www.reactivemanifesto.org/pt-BR
  9. Reactive Manifesto

  10. Message-Driven “Reactive Systems rely on asynchronous message-passing” Share Mutable State

    Immutability Avoid Block Asynchronous
  11. Some t ls • Actors • Agents • Future/Dataflow •

    Reactive Extensions (Rx)
  12. Elastic “Capable of being easily expanded or upgraded on demand”

    Distribuited systems Availability Scalability Asynchronous
  13. “Almost” no limit to scalability. Shared Nothing Assynchronous communication Location

    Transparency Loose Coupling
  14. Resilience “The ability of a substance or object to spring

    back into shape.” “The capacity to recover quickly from difficulties.” Failure recover Manage failure locally Avoid cascading failures Isolate the failure
  15. Responsive “Quick to respond or react appropriately” Latency consistent Batching

    Back Pressure Reactive Request
  16. Java Reactive frameworks Reactor ReactiveX

  17. None
  18. Dúvidas?

  19. THANK YOU! FRIENDS TECHDAY COMPARTILHAR, APRENDER E CONTRIBUIR! Felipe Mamud

    @ftmamud Raphael Almeida @raphait We are a reactive family