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

Building Reactive Pipelines with Kotlin & Spring: How to go from scalable apps to (ridiculously) scalable systems

Mark Heckler
December 05, 2019

Building Reactive Pipelines with Kotlin & Spring: 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:
* 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
* How Kotlin enables you to do so with less code and more elegance

The presenter will code all examples live and in real time. This is not an abstract discussion, come to gain real, practical knowledge!

Mark Heckler

December 05, 2019
Tweet

More Decks by Mark Heckler

Other Decks in Programming

Transcript

  1. Building Reactive Pipelines with Kotlin & Spring How to go

    from scalable apps to (ridiculously) scalable systems Mark Heckler Spring Developer & Advocate www.thehecklers.com [email protected] [email protected] @mkheck
  2. @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?
  3. @mkheck www.thehecklers.com Who am I? • Author • Architect &

    Developer • Java Champion, Rockstar • Professional Problem Solver • Spring Developer & Advocate • Creador y curador de
  4. @mkheck www.thehecklers.com New book! But you can’t buy it yet…

    DISCLAIMER: artist’s rendition only, not the real cover
  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 We’ve redlined, now what? Change approach to scaling

    Scaling (connections) vs. Performance (parallelization) Reactor Integration with messaging platforms…any synergies here?
  7. @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.”
  8. @mkheck www.thehecklers.com Reactive Streams in Context Publisher<T> Subscriber<T> Subscription Processor<T,R>

    Spring Cloud Stream parallel Source/Supplier Sink/Consumer (n/a) Processor/Function