BUILDING REACTIVE PIPELINES WITH KOTLIN & SPRING MARK HECKLER @mkheck Copenhagen Denmark
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
“Please do LESS with MORE !” 💱💱💱 @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? @mkheck www.thehecklers.com
There’s more! Roman Elizarov 10:15 tomorrow Sebastien Deleuze 11:15 tomorrow @mkheck www.thehecklers.com
Who am I? • Author • Architect & Developer • Java Champion, Rockstar • Professional Problem Solver • Spring Developer & Advocate • Creador y curador de @mkheck www.thehecklers.com
New book! But you can’t buy it yet… DISCLAIMER: artist’s rendition only, not the real cover @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.) @mkheck www.thehecklers.com
For example… Source Processor Sink @mkheck www.thehecklers.com
Evolving the API Supplier Function Consumer @mkheck www.thehecklers.com
We’ve redlined, now what? Change approach to scaling Scaling (connections) vs. Performance (parallelization) Coroutines (Kotlin), Reactor, Loom (?) Integration with messaging platforms…any synergies here? 🤕 @mkheck www.thehecklers.com
“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.” –Rossen Stoyanchev, Reactor team member @mkheck www.thehecklers.com
Reactive Streams: 4 interfaces Publisher<T> Subscriber<T> Subscription Processor<T,R> @mkheck www.thehecklers.com
Reactive Streams in Context Spring Cloud Stream parallel Source/Supplier Publisher<T> Sink/Consumer Subscriber<T> (n/a) Subscription Processor<T,R> Processor/Function @mkheck www.thehecklers.com
Let’s code! @mkheck www.thehecklers.com
@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 @mkheck www.thehecklers.com
THANK YOU AND PLEASE REMEMBER TO VOTE! Mark Heckler @mkheck #KotlinConf
Recommend
More recommend