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

2b || !2b Reactive Spring

2b || !2b Reactive Spring

Oleh Dokuka

May 21, 2018
Tweet

More Decks by Oleh Dokuka

Other Decks in Programming

Transcript

  1. 2BE || !2BE...
    2BE || !2BE...
    REACTIVE ...
    REACTIVE ...

    View Slide

  2. ABOUT US
    ABOUT US

    View Slide

  3. View Slide

  4. ABOUT DARTH VADER
    ABOUT DARTH VADER
    So ware Engineer at Levi9
    JEEConf, JavaDay, JUG Speaker
    Project Rector Committer

    View Slide

  5. ABOUT MASTER JEDI
    ABOUT MASTER JEDI
    So ware Engineer at ZoomData
    JEEConf, JavaDay, JUG Speaker

    View Slide

  6. AGENDA
    AGENDA
    SITH OR JEDI SPRING FOR MODERN
    SITH OR JEDI SPRING FOR MODERN
    APPLICATIONS?
    APPLICATIONS?

    View Slide

  7. POINTS
    POINTS
    Today's demands
    Usability
    Relevance
    Performance
    Cost of Development

    View Slide

  8. TODAY'S DEMANDS
    TODAY'S DEMANDS

    View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. JEDI SPRING
    JEDI SPRING

    View Slide

  16. View Slide

  17. View Slide

  18. JEDI STACK VS. SITH
    JEDI STACK VS. SITH
    STACK
    STACK

    View Slide

  19. JEDI STACK
    JEDI STACK

    View Slide

  20. View Slide

  21. Spring Boot 1.x/2.x

    View Slide

  22. Spring Data

    View Slide

  23. SPRING WEBMVC
    SPRING WEBMVC

    View Slide

  24. View Slide

  25. SITH STACK
    SITH STACK

    View Slide

  26. View Slide

  27. Spring Boot 2.x

    View Slide

  28. Spring Data Reactive

    View Slide

  29. SPRING WEBFLUX
    SPRING WEBFLUX

    View Slide

  30. View Slide

  31. View Slide

  32. CRYPTO TRADING
    CRYPTO TRADING
    BITCOIN PLATFORM
    BITCOIN PLATFORM

    View Slide

  33. USABILITY
    USABILITY

    View Slide

  34. FIRST DEMO
    FIRST DEMO

    View Slide

  35. Bitfinex
    Bitmex
    Trading
    Platform
    User 1 User 2
    Trades
    Storage

    View Slide

  36. LET'S CODE
    LET'S CODE

    View Slide

  37. RELEVANCE
    RELEVANCE

    View Slide

  38. LET'S CODE
    LET'S CODE

    View Slide

  39. PERFORMANCE
    PERFORMANCE

    View Slide

  40. View Slide

  41. View Slide

  42. dispatch
    dispatch
    return
    dispatch
    return
    return
    ~200 ms
    ~200 ms

    View Slide

  43. THROUGPUT WITH I/O
    THROUGPUT WITH I/O

    View Slide

  44. View Slide

  45. Cloud Bandwidth Limitation
    OS Outgoing Connections Limitation
    Difference between RestTemplate and WebClient

    View Slide

  46. THROUGPUT WITHOUT I/O
    THROUGPUT WITHOUT I/O

    View Slide

  47. View Slide

  48. CPU USAGE
    CPU USAGE

    View Slide

  49. View Slide

  50. MEMORY USAGE
    MEMORY USAGE

    View Slide

  51. View Slide

  52. INFRASTRUCTURE COST PER 1K USERS
    INFRASTRUCTURE COST PER 1K USERS

    View Slide

  53. COST OF
    COST OF
    DEVELOPMENT
    DEVELOPMENT

    View Slide

  54. SUMMARY
    SUMMARY

    View Slide

  55. View Slide

  56. View Slide

  57. https://www.infoq.com/articles/Servlet-and-Reactive-
    Stacks-Spring-Framework-5

    View Slide

  58. ONE MORE THING...
    ONE MORE THING...

    View Slide

  59. ZUUL 2 : THE NETFLIX JOURNEY
    ZUUL 2 : THE NETFLIX JOURNEY
    TO ASYNCHRONOUS, NON-
    TO ASYNCHRONOUS, NON-
    BLOCKING SYSTEMS
    BLOCKING SYSTEMS
    HTTPS://MEDIUM.COM/NETFLIX-TECHBLOG/ZUUL-2-
    HTTPS://MEDIUM.COM/NETFLIX-TECHBLOG/ZUUL-2-
    THE-NETFLIX-JOURNEY-TO-ASYNCHRONOUS-NON-
    THE-NETFLIX-JOURNEY-TO-ASYNCHRONOUS-NON-
    BLOCKING-SYSTEMS-45947377FB5C
    BLOCKING-SYSTEMS-45947377FB5C

    View Slide

  60. RXNETTY VS. TOMCAT
    RXNETTY VS. TOMCAT
    HTTPS://WWW.SLIDESHARE.NET/BRENDANGREGG/R
    HTTPS://WWW.SLIDESHARE.NET/BRENDANGREGG/R
    XNETTY-VS-TOMCAT-PERFORMANCE-RESULTS
    XNETTY-VS-TOMCAT-PERFORMANCE-RESULTS

    View Slide

  61. THE CODE
    THE CODE

    View Slide

  62. View Slide

  63. Q & A
    Q & A

    View Slide