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

394797f95420c4da4c84379f0d0b11c9?s=47 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!

394797f95420c4da4c84379f0d0b11c9?s=128

Mark Heckler

December 05, 2019
Tweet

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 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 There’s more! Roman Elizarov 10:15 tomorrow Sebastien Deleuze

    11:15 tomorrow
  5. @mkheck www.thehecklers.com Who am I? • Author • Architect &

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

    DISCLAIMER: artist’s rendition only, not the real cover
  7. @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.)
  8. @mkheck www.thehecklers.com Sink Processor For example… Source

  9. @mkheck www.thehecklers.com Consumer Function Evolving the API Supplier

  10. @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?
  11. @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.”
  12. @mkheck www.thehecklers.com Reactive Streams: 4 interfaces Publisher<T> Subscriber<T> Subscription Processor<T,R>

  13. @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
  14. @mkheck www.thehecklers.com Let’s code!

  15. @mkheck www.thehecklers.com

  16. @mkheck www.thehecklers.com Resources https://github.com/mkheck/building-reactive-pipelines-with-kotlin https://kotlinlang.org https://cloud.spring.io/spring-cloud-stream/ https://projectreactor.io mark@thehecklers.com, mheckler@pivotal.io @mkheck

    on Twitter