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

Building Reactive Pipelines

394797f95420c4da4c84379f0d0b11c9?s=47 Mark Heckler
September 25, 2019

Building Reactive Pipelines

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 will code all examples using 100% open source software live and in real time. This is not an abstract discussion, come to gain real, practical knowledge!

394797f95420c4da4c84379f0d0b11c9?s=128

Mark Heckler

September 25, 2019
Tweet

Transcript

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

    (ridiculously) scalable systems Mark Heckler Spring Developer & Advocate www.thehecklers.com mark@thehecklers.com mheckler@pivotal.io @mkheck
  2. @mkheck www.thehecklers.com “Please do LESS with MORE!”

  3. @mkheck www.thehecklers.com Why are we here? Scaling systems: traditional approaches

    What to do when we reach the limits? Sounds good, but how does it work?
  4. @mkheck www.thehecklers.com Who am I? • Author • Architect &

    Developer • Java Champion, Rockstar • Professional Problem Solver • Spring Developer & Advocate • Creador y curador de
  5. @mkheck www.thehecklers.com Scaling systems: off to a good start Microservices

    for independent scaling Messaging platforms Spring Cloud Stream for productivity + versatility (+ resilience, etc.)
  6. @mkheck www.thehecklers.com Sink Processor For example… Source

  7. @mkheck www.thehecklers.com We’ve redlined, now what? Change approach to scaling

    Scaling (connections) vs. Performance (parallelization) Reactor Integration with messaging platforms…any synergies to be had here?
  8. @mkheck www.thehecklers.com –Rossen Stoyanchev, Reactor team member “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.”
  9. @mkheck www.thehecklers.com Reactive Streams: 4 interfaces Publisher<T> Subscriber<T> Subscription Processor<T,R>

  10. @mkheck www.thehecklers.com Reactive Streams in Context Publisher<T> Subscriber<T> Subscription Processor<T,R>

    Spring Cloud Stream parallel Source Sink (n/a) Processor
  11. @mkheck www.thehecklers.com Let’s code!

  12. @mkheck www.thehecklers.com

  13. @mkheck www.thehecklers.com Resources https://github.com/mkheck/building-reactive-pipelines https://cloud.spring.io/spring-cloud-stream/ https://projectreactor.io mark@thehecklers.com, mheckler@pivotal.io @mkheck on

    Twitter