Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

@mkheck www.thehecklers.com “Please do LESS with MORE!”

Slide 3

Slide 3 text

@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?

Slide 4

Slide 4 text

@mkheck www.thehecklers.com There’s more! Roman Elizarov 10:15 tomorrow Sebastien Deleuze 11:15 tomorrow

Slide 5

Slide 5 text

@mkheck www.thehecklers.com Who am I? • Author • Architect & Developer • Java Champion, Rockstar • Professional Problem Solver • Spring Developer & Advocate • Creador y curador de

Slide 6

Slide 6 text

@mkheck www.thehecklers.com New book! But you can’t buy it yet… DISCLAIMER: artist’s rendition only, not the real cover

Slide 7

Slide 7 text

@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.)

Slide 8

Slide 8 text

@mkheck www.thehecklers.com Sink Processor For example… Source

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

@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?

Slide 11

Slide 11 text

@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.”

Slide 12

Slide 12 text

@mkheck www.thehecklers.com Reactive Streams: 4 interfaces Publisher Subscriber Subscription Processor

Slide 13

Slide 13 text

@mkheck www.thehecklers.com Reactive Streams in Context Publisher Subscriber Subscription Processor Spring Cloud Stream parallel Source/Supplier Sink/Consumer (n/a) Processor/Function

Slide 14

Slide 14 text

@mkheck www.thehecklers.com Let’s code!

Slide 15

Slide 15 text

@mkheck www.thehecklers.com

Slide 16

Slide 16 text

@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 [email protected], [email protected] @mkheck on Twitter