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

Building Reactive Pipelines: How to go from scalable apps to (ridiculously) scalable systems

Building Reactive Pipelines: How to go from scalable apps to (ridiculously) scalable systems

Going from imperative, blocking code to a reactive programming model enables us to scale our apps in ways that aren't possible with a thread scale-out approach, which is a good thing! But as with all optimizations, one must examine & address the system holistically or all we accomplish is moving bottlenecks around, creating or finding new chokepoints as we tune certain applications/services. This is *not* so good.

In this session, the presenter discusses & demonstrates:

* How Project Reactor builds on reactive streams to help you create performant & scalable reactive microservices
* Message brokers & streaming platforms like RabbitMQ & Apache Kafka
* How Spring Cloud Stream leverages Reactor to provide fully reactive pipelines for system-wide (ridiculous!) scalability

The presenter codes all examples using 100% open source software live and in real time.

Mark Heckler

May 09, 2019
Tweet

More Decks by Mark Heckler

Other Decks in Programming

Transcript

  1. Building Reactive Pipelines How to go from scalable apps to

    (ridiculously) scalable systems Mark Heckler Professional Problem Solver, Spring Developer & Advocate www.thehecklers.com [email protected] [email protected] @mkheck, @springnoticias
  2. @mkheck www.thehecklers.com Takeaways Message brokers & streaming platforms What is

    Spring Cloud Stream? Why use it? Reactive streams & Project Reactor Spring Cloud Stream + Reactor = system-wide (ridiculous!) scalability Turning it up to 11: going even further
  3. @mkheck www.thehecklers.com Who am I? • Author • Architect &

    Developer • Java Champion, Groundbreaker • Professional Problem Solver • Spring Developer & Advocate
  4. @mkheck www.thehecklers.com Takeaways Message brokers & streaming platforms What is

    Spring Cloud Stream? Why use it? Reactive streams & Project Reactor Spring Cloud Stream + Reactor = system-wide (ridiculous!) scalability
  5. @mkheck www.thehecklers.com –Rossen Stoyanchev, Project Reactor team “In a nutshell

    reactive programming is about non-blocking, event-driven applications that scale with a small number of threads with backpressure as a key ingredient that aims to ensure producers do not overwhelm consumers.”
  6. @mkheck www.thehecklers.com – https://github.com/reactive-streams/reactive-streams-jvm “The purpose of Reactive Streams is

    to provide a standard for asynchronous stream processing with non-blocking backpressure.”
  7. @mkheck www.thehecklers.com Takeaways Message brokers & streaming platforms What is

    Spring Cloud Stream? Why use it? Reactive streams & Project Reactor Spring Cloud Stream + Reactor = system-wide (ridiculous!) scalability Turning it up to 11: going even further