SlideShare a Scribd company logo
An introduction to reactive
applications, Reactive Streams, and
options for the JVM
Steve Pember
CTO, ThirdChannel
Software Architecture Con, 2016
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
Agenda
• The Problem
• To Be Reactive
• What are Reactive Streams?
• Rx in Depth
• An Overview of JVM Options
• Demo Time!
THIRDCHANNEL @svpember
The Problem: The Need to go
Reactive
Really, it’s Two problems
THIRDCHANNEL @svpember
1) Performance Demands
Are Always Increasing
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
We Use Technology from the
Beginning of Web Development
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
Things Slow Down
Users get
angry
quickly
–Johnny Appleseed
“Type a quote here.”
Let’s Keep Our Users Happy
And Engaged
THIRDCHANNEL @svpember
2) The Rise of Microservices
Multiple
Integration
Points
It’s Not Only Users That Use Up
Resources
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
So… what to do?
Embrace
Reactive
Applications
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
Reactive Applications
• Responsive
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
Reactive Applications
• Responsive
• Resilient
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
Embrace Failure
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
Independent Things Fail
Independently
THIRDCHANNEL @svpember
Reactive Applications
• Responsive
• Resilient
• Elastic (Scalable)
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
THIRDCHANNEL @svpember
Reactive Applications
• Responsive
• Resilient
• Elastic (Scalable)
• Asynchronous / Message Driven
Free up resources
with Async
Operations & Non-
Blocking I/O
Now do all of this at every level
of your app…
All the Way
Down
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
• User Interface: What the user interacts with (JS, iOS, Android)
• Inter-Service: Distributed application topology + service
communication design (e.g. Kafka for async messaging)
• Intra-Service: The code! (well designed with bounded contexts)
• Framework: Structures your code + provides external
communication, DI, etc
• Execution Environment: Broad area, but includes how your
code is executed (e.g. in JVM: Tomcat, Jetty, Netty)
THIRDCHANNEL @svpember
Mostly talk about this…
We’ll talk a little about this…
And a little more about this
There’s not enough time!
Writing Reactive Code is the
best method of introduction…
Async is Hard for Humans
One Excellent Tool is (are?)
Reactive Streams
But Wait…
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
THIRDCHANNEL @svpember
Agenda
• The Problem
• What are Reactive Streams?
“Reactive Streams”, “Reactive
Extensions”, or “Rx”
Collections + Time
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
Single abstraction over data
from many sources
THIRDCHANNEL @svpember
Observer Pattern
Push (not Pull)
based Iterators
Stream-Based
Functional Programming
Imperative
vs
Stream
Streams with Extensions for
Reactive Programming
Rx makes Async behavior easy!
(Reactive Pull) Backpressure
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
THIRDCHANNEL @svpember
What is Rx?
• Collections + Time
• A Single Abstraction over data from different sources
• Observer Pattern with Push-based iterators
• Stream Based Functional Programming
• … with Extensions for Reactive Programming
• Async is easy
• Backpressure
Rx Simplifies Complex Work
…Once you
understand,
of course…
THIRDCHANNEL @svpember
Story Time!
THIRDCHANNEL @svpember
Story Time
THIRDCHANNEL @svpember
Story Time
THIRDCHANNEL @svpember
Story Time
THIRDCHANNEL @svpember
Story Time
2012 - MS Open Source’s RX!
THIRDCHANNEL @svpember
Story Time
2012 - MS Open Source’s RX!
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
THIRDCHANNEL @svpember
Agenda
• The Problem
• What are Reactive Streams?
• Rx in depth
THIRDCHANNEL @svpember
Key Terms:
An Observable is like Promise ++
(Observable: aka ‘Publisher’)
Observables are most powerful
when wrapping external input
An Observable pushes items to
Subscribers
Subscribers receive and
operate on emitted data
Observables and Subscribers
operate on a Scheduler
The following
examples use
rxJava 1.x
Also, try out rxGroovy
THIRDCHANNEL @svpember
Groovy
• Dynamic Language for the JVM
• Less Verbose (Reduce Java Boilerplate)
• Ruby/Python - esque Collections
• Run Time Meta Programming
• Optionally Typed
• AST Transformations
• Powerful Annotations
• Multi - Inheritance via Traits and @DelegatesTo
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
Basic Usage
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
Thankfully, there are shortcuts
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
Streams are Composable
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
You can get much power from 5 functions
• filter
• map
• reduce
• groupBy
• flatMap
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
First Mental Leap: An
Observable of Observables
–Johnny Appleseed
“Type a quote here.”
THIRDCHANNEL @svpember
Let’s get a
little crazy
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
Hot vs Cold
Cold Observable: finite data, on
demand
Hot Observable: infinite data, as
it’s ready
Cold Observable: only starts
emitting data on .subscribe ()
Hot Observable: emits data
whenever it’s ready
THIRDCHANNEL @svpember
Asynchronous Streams
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
BackPressure
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
Can only Mitigate Hot Streams
• throttle
• sample
• window
• buffer
• drop
THIRDCHANNEL @svpember
Stream Interaction
Don’t Unsubscribe from Observables
Programmatically complete them
when another Observable fires
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
THIRDCHANNEL @svpember
AutoComplete Requirements
• Wait 250 ms between keypresses before querying
• If no keys are pressed, no query
• Successful queries should render movies
• Any new queries should kill in-flight queries
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
Pretty
Great,
But what’s
going on?
keyPress stream creates a sub-
stream which is reacting to
subsequent data from the
parent
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
Questions?
Ok, what about 2.0?
API hasn’t changed much
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
THIRDCHANNEL @svpember
RxJava 2.0
• Completely rebuilt for Reactive-Streams.org 1.0 spec
• Decreased resource usage
• No nulls allowed
• New Publisher types
THIRDCHANNEL @svpember
Publishers
• Observable - classic. In 2.0: no Backpressure
• Flowable - new to 2.0. Use this for Backpressure
• Single - only one item will be emitted or signal error
• Completable - only signal success or error
• Maybe - new to 2.0: one item emitted, signal success, or signal
error (think, Promise)
THIRDCHANNEL @svpember
Agenda
• The Problem
• What are Reactive Streams?
• Rx In Depth
• An Overview of JVM options
THIRDCHANNEL @svpember
Intra-Service Options
RxJava,
Obviously
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
THIRDCHANNEL @svpember
ReactiveX JVM Family
• rxJava
• rxJavaFX
• rxGroovy
• rxClojure
• rxKotlin
• rxScala
• And many more (beyond JVM): https://github.com/ReactiveX
THIRDCHANNEL @svpember
Akka & Akka Streams
• Library
• Definition of Reactive System
• Created by LightBend
• Actor-Based Concurrency
• Implemented Streams on Top of Actor Model
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
–Johnny Appleseed
“Type a quote here.”
–Johnny Appleseed
“Type a quote here.”
THIRDCHANNEL @svpember
• Pivotal Project
• Library
• Reactive Streams
• Built on LMAX Ring Buffer / Disrupter
• Multiple libraries to extend Disruptor in multiple ways
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
Java 9 will have Flow
THIRDCHANNEL @svpember
Framework Level
THIRDCHANNEL @svpember
• High Performance Web Framework
• Non-Opinionated
• Non-Blocking Network Stack
• Built on Reactive Streams, Netty, Java 8, Guice
• Deterministic Asynchronous Execution
Take a Look at Ratpack
http://www.infoq.com/presentations/ratpack-2015
Includes rxRatpack module, but
we’ll talk about that later
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
… specifically, Spring 5
THIRDCHANNEL @svpember
Spring Web Reactive vs
Spring Web MVC
THIRDCHANNEL @svpember
Spring 5
• spring-web-reactive instead of spring-mvc
• Same @Controller programming model
• Different underlying API
• Based on Project Reactor
• Can run within Tomcat, Jetty, or Netty (e.g. can fallback to use
servlets)
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
THIRDCHANNEL @svpember
Play Framework
• Part of the Lightbend family
• Built on Akka and Netty
• Async I/O
• Lightweight and stateless
• Encourages RESTful design
• Focus on JSON
An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)
THIRDCHANNEL @svpember
Vert.X
• Event-driven & Non blocking
• lightweight, non-opinionated, and modular
• integrates with rxJava
• support for additional languages (like JS and Ruby)
• Can be used as a library embedded in an existing app
THIRDCHANNEL @svpember
Demo Time
THIRDCHANNEL @svpember
Any Questions?
Thank You!
@svpember
spember@gmail.com
THIRDCHANNEL @svpember
THIRDCHANNEL @svpember
More Information
• Reactive Groovy & Ratpack Demo: https://github.com/spember/reactive-movie-demo
• Jafar Husain: RxJS: https://www.youtube.com/watch?v=XRYN2xt11Ek
• Reactive Streams Spec: http://www.reactive-streams.org/
• Reactive Manifesto: http://www.reactivemanifesto.org/
• Akka: http://akka.io/
• rxJava / ReactiveX libraries: https://github.com/ReactiveX
• Ratpack: http://ratpack.io/
• Reactor: https://github.com/reactor/reactor
• The Introduction to Reactive Programming you’ve been missing: https://gist.github.com/staltz/868e7e9bc2a7b8c1f754
• Martin Fowler: Stream / Pipeline programming: http://martinfowler.com/articles/refactoring-pipelines.html
• Or Just on Groovy (Groovy the Awesome Parts): http://www.slideshare.net/SpringCentral/groovy-the-awesome-parts
• Ratpack Web Presentation: http://www.infoq.com/presentations/ratpack-2015
• Advanced RxJava Blog: http://akarnokd.blogspot.com/
• Martin Fowler LMAX breakdown: http://martinfowler.com/articles/lmax.html
• Reactive Web Apps with Spring 5: https://www.youtube.com/watch?v=rdgJ8fOxJhc&feature=youtu.be
Images
• Empty Pool: http://www.wtok.com/home/headlines/Water-Problems-205987121.html
• Juggling: https://en.wikipedia.org/wiki/Juggling
• Directing Traffic: https://www.flickr.com/photos/tracilawson/3474012583L
• LMAX Disrupter: http://martinfowler.com/articles/lmax.html
• Mailman: thebrandtstandard.com/2013/02/09/u-s-post-office-to-end-saturday-letter-delivery-this-summer/
• Actors Diagram: https://blog.codecentric.de/en/2015/08/introduction-to-akka-actors/
• Cheetah: www.livescience.com/21944-usain-bolt-vs-cheetah-animal-olympics.html
• Dominoes: https://www.flickr.com/photos/louish/5611657857/sizes/l/in/photostream/
• Spartans: www.300themovie.com/
• Stampeding Buffalo: news.sd.gov/newsitem.aspx?id=15164
• Turtles (Cosmic): http://synchronicity313.deviantart.com/art/Turtles-All-The-Way-Down-68160813
• XkCD turtles: https://xkcd.com/1416/
• Simpsons “Old Coot”: http://simpsons.wikia.com/wiki/Category:Grandparents
• Meditation: http://i.huffpost.com/gen/1405484/images/o-MEDITATION-facebook.jpg
• Death Star Architectures: http://www.slideshare.net/adriancockcroft/monitorama-please-no-more

More Related Content

What's hot (20)

PDF
Patterns of the Lambda Architecture -- 2015 April - Hadoop Summit, Europe
Flip Kromer
 
PPTX
Gr8conf US 2015: Reactive Options for Groovy
Steve Pember
 
PPTX
Sydney Continuous Delivery Meetup May 2014
Andreas Grabner
 
PPTX
London WebPerf Meetup: End-To-End Performance Problems
Andreas Grabner
 
PPTX
Top .NET, Java & Web Performance Mistakes - Meetup Jan 2015
Andreas Grabner
 
PPTX
(R)evolutionize APM
Andreas Grabner
 
PDF
The Tools to get you started with React Native
Robert Tochman-Szewc
 
PDF
Scaling the guardian
Michael Brunton-Spall
 
PPTX
Continuous database deployment
Mike (Michael) Acord
 
KEY
The guardian and app engine
Michael Brunton-Spall
 
PDF
Serverless Application Model - Executing Lambdas Locally
Alex
 
KEY
Scaling small apps
Michael Brunton-Spall
 
PPTX
Performance: Key Elements to Consider in the Cloud - RightScale Compute 2013
RightScale
 
PPTX
Strong Consistency in Databases. What does it actually guarantee? - Andy Goo...
DevOpsDays Tel Aviv
 
PPTX
Cloud fail scaling to infinity but not beyond
Kunal Johar
 
PPTX
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
Andreas Grabner
 
PPTX
Developer day - AWS: Fast Environments = Fast Deployments
Matthew Cwalinski
 
PPTX
Accelerating Innovation and Time-to-Market @ Camp Devops Houston 2015
Ariel Tseitlin
 
PDF
Speed up your Serverless development flow
Efi Merdler-Kravitz
 
PPTX
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Andreas Grabner
 
Patterns of the Lambda Architecture -- 2015 April - Hadoop Summit, Europe
Flip Kromer
 
Gr8conf US 2015: Reactive Options for Groovy
Steve Pember
 
Sydney Continuous Delivery Meetup May 2014
Andreas Grabner
 
London WebPerf Meetup: End-To-End Performance Problems
Andreas Grabner
 
Top .NET, Java & Web Performance Mistakes - Meetup Jan 2015
Andreas Grabner
 
(R)evolutionize APM
Andreas Grabner
 
The Tools to get you started with React Native
Robert Tochman-Szewc
 
Scaling the guardian
Michael Brunton-Spall
 
Continuous database deployment
Mike (Michael) Acord
 
The guardian and app engine
Michael Brunton-Spall
 
Serverless Application Model - Executing Lambdas Locally
Alex
 
Scaling small apps
Michael Brunton-Spall
 
Performance: Key Elements to Consider in the Cloud - RightScale Compute 2013
RightScale
 
Strong Consistency in Databases. What does it actually guarantee? - Andy Goo...
DevOpsDays Tel Aviv
 
Cloud fail scaling to infinity but not beyond
Kunal Johar
 
DevOps Days Toronto: From 6 Months Waterfall to 1 hour Code Deploys
Andreas Grabner
 
Developer day - AWS: Fast Environments = Fast Deployments
Matthew Cwalinski
 
Accelerating Innovation and Time-to-Market @ Camp Devops Houston 2015
Ariel Tseitlin
 
Speed up your Serverless development flow
Efi Merdler-Kravitz
 
Performance Quality Metrics for Mobile Web and Mobile Native - Agile Testing ...
Andreas Grabner
 

Viewers also liked (20)

PDF
Introduction to Reactive Streams and Reactor 2.5
Stéphane Maldini
 
PDF
Effective programming in Java - Kronospan Job Fair 2016
Łukasz Koniecki
 
PPTX
Software Development: Trends and Perspectives
Softheme
 
PDF
TDC2016SP - JooQ: SQL orientado a objetos.
tdc-globalcode
 
PDF
openEHR: NHS Code4Health RippleOSI and EtherCis
Ian McNicoll
 
PPSX
Introduction to Microsoft Bot Framework
Alok Rajasukumaran
 
PPTX
Emerging trends in software development: The next generation of storage
Donnie Berkholz
 
PDF
jOOQ at Topconf 2013
Lukas Eder
 
PPT
Aspect Oriented Software Development
Jignesh Patel
 
PDF
Aspect oriented software development
Maryam Malekzad
 
PDF
ORM is an Offensive Anti-Pattern
Yegor Bugayenko
 
PDF
An Introduction to jOOQ
Steve Pember
 
PDF
New Trends in software development
Kabir Khanna
 
PDF
Reactive Streams: Handling Data-Flow the Reactive Way
Roland Kuhn
 
PDF
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Y Watanabe
 
PDF
Reactive Web Applications
Rossen Stoyanchev
 
PDF
Embracing Reactive Streams with Java 9 and Spring 5
Wilder Rodrigues
 
PDF
openEHR Technical Workshop Intro MIE 2016
Ian McNicoll
 
PDF
Reactor 3.0, a reactive foundation for java 8 and Spring
Stéphane Maldini
 
PDF
Reactive Programming in Spring 5
poutsma
 
Introduction to Reactive Streams and Reactor 2.5
Stéphane Maldini
 
Effective programming in Java - Kronospan Job Fair 2016
Łukasz Koniecki
 
Software Development: Trends and Perspectives
Softheme
 
TDC2016SP - JooQ: SQL orientado a objetos.
tdc-globalcode
 
openEHR: NHS Code4Health RippleOSI and EtherCis
Ian McNicoll
 
Introduction to Microsoft Bot Framework
Alok Rajasukumaran
 
Emerging trends in software development: The next generation of storage
Donnie Berkholz
 
jOOQ at Topconf 2013
Lukas Eder
 
Aspect Oriented Software Development
Jignesh Patel
 
Aspect oriented software development
Maryam Malekzad
 
ORM is an Offensive Anti-Pattern
Yegor Bugayenko
 
An Introduction to jOOQ
Steve Pember
 
New Trends in software development
Kabir Khanna
 
Reactive Streams: Handling Data-Flow the Reactive Way
Roland Kuhn
 
jooqってなんて読むの? から始めるO/RマッパーとSpringBootの世界
Y Watanabe
 
Reactive Web Applications
Rossen Stoyanchev
 
Embracing Reactive Streams with Java 9 and Spring 5
Wilder Rodrigues
 
openEHR Technical Workshop Intro MIE 2016
Ian McNicoll
 
Reactor 3.0, a reactive foundation for java 8 and Spring
Stéphane Maldini
 
Reactive Programming in Spring 5
poutsma
 
Ad

Similar to An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016) (20)

PDF
Reactive All the Way Down the Stack
Steve Pember
 
PDF
Frontend as a first class citizen
Marcin Grzywaczewski
 
PDF
Surviving in a Microservices environment -abridged
Steve Pember
 
PPTX
RxJS and Reactive Programming - Modern Web UI - May 2015
Ben Lesh
 
PDF
Reactive Applications in Java
Alexander Mrynskyi
 
PPTX
Reactive Web Development with Spring Boot 2
Mike Melusky
 
KEY
Distributed app development with nodejs and zeromq
Ruben Tan
 
PPTX
Relay: Seamless Syncing for React (VanJS)
Brooklyn Zelenka
 
PDF
Adding GraphQL to your existing architecture
Sashko Stubailo
 
PDF
Meteor Revolution: From DDP to Blaze Reactive Rendering
Massimo Sgrelli
 
PPSX
React introduction
Kashyap Parmar
 
PPTX
Untangling spring week11
Derek Jacoby
 
PDF
PlayStation and Lucene - Indexing 1M documents per second: Presented by Alexa...
Lucidworks
 
PPTX
Scaling Your Architecture for the Long Term
Randy Shoup
 
PDF
Streaming to a new Jakarta EE
Markus Eisele
 
PDF
Streaming to a New Jakarta EE
J On The Beach
 
PDF
Springone2gx 2014 Reactive Streams and Reactor
Stéphane Maldini
 
PPTX
The challenges of live events scalability
Guy Tomer
 
PDF
Patterns of the Lambda Architecture -- 2015 April -- Hadoop Summit, Europe
Flip Kromer
 
PDF
How to debug slow lambda response times
Yan Cui
 
Reactive All the Way Down the Stack
Steve Pember
 
Frontend as a first class citizen
Marcin Grzywaczewski
 
Surviving in a Microservices environment -abridged
Steve Pember
 
RxJS and Reactive Programming - Modern Web UI - May 2015
Ben Lesh
 
Reactive Applications in Java
Alexander Mrynskyi
 
Reactive Web Development with Spring Boot 2
Mike Melusky
 
Distributed app development with nodejs and zeromq
Ruben Tan
 
Relay: Seamless Syncing for React (VanJS)
Brooklyn Zelenka
 
Adding GraphQL to your existing architecture
Sashko Stubailo
 
Meteor Revolution: From DDP to Blaze Reactive Rendering
Massimo Sgrelli
 
React introduction
Kashyap Parmar
 
Untangling spring week11
Derek Jacoby
 
PlayStation and Lucene - Indexing 1M documents per second: Presented by Alexa...
Lucidworks
 
Scaling Your Architecture for the Long Term
Randy Shoup
 
Streaming to a new Jakarta EE
Markus Eisele
 
Streaming to a New Jakarta EE
J On The Beach
 
Springone2gx 2014 Reactive Streams and Reactor
Stéphane Maldini
 
The challenges of live events scalability
Guy Tomer
 
Patterns of the Lambda Architecture -- 2015 April -- Hadoop Summit, Europe
Flip Kromer
 
How to debug slow lambda response times
Yan Cui
 
Ad

More from Steve Pember (19)

PPTX
Spring I_O 2024 - Flexible Spring with Event Sourcing.pptx
Steve Pember
 
PDF
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Steve Pember
 
PDF
SACon 2019 - Surviving in a Microservices Environment
Steve Pember
 
PDF
Gradle Show and Tell
Steve Pember
 
PDF
Greach 2018: Surviving Microservices
Steve Pember
 
PDF
Event storage in a distributed system
Steve Pember
 
PDF
Harnessing Spark and Cassandra with Groovy
Steve Pember
 
PDF
Surviving in a microservices environment
Steve Pember
 
PDF
Surviving in a Microservices Environment
Steve Pember
 
PPTX
Richer Data History with Event Sourcing (SpringOne 2GX 2015
Steve Pember
 
PPTX
Gr8conf US 2015 - Intro to Event Sourcing with Groovy
Steve Pember
 
PDF
Advanced Microservices - Greach 2015
Steve Pember
 
PPTX
Richer data-history-event-sourcing
Steve Pember
 
PPTX
Managing a Microservices Development Team (And advanced Microservice concerns)
Steve Pember
 
PDF
Reactive Microservice Architecture with Groovy and Grails
Steve Pember
 
PPT
Why Reactive Architecture Will Take Over The World (and why we should be wary...
Steve Pember
 
PPT
Richer Data History in Groovy with Event Sourcing
Steve Pember
 
PPT
Distributed Reactive Architecture: Extending SOA with Events
Steve Pember
 
PDF
Message Oriented Architecture - Gr8conf US 2013
Steve Pember
 
Spring I_O 2024 - Flexible Spring with Event Sourcing.pptx
Steve Pember
 
Anatomy of a Spring Boot App with Clean Architecture - Spring I/O 2023
Steve Pember
 
SACon 2019 - Surviving in a Microservices Environment
Steve Pember
 
Gradle Show and Tell
Steve Pember
 
Greach 2018: Surviving Microservices
Steve Pember
 
Event storage in a distributed system
Steve Pember
 
Harnessing Spark and Cassandra with Groovy
Steve Pember
 
Surviving in a microservices environment
Steve Pember
 
Surviving in a Microservices Environment
Steve Pember
 
Richer Data History with Event Sourcing (SpringOne 2GX 2015
Steve Pember
 
Gr8conf US 2015 - Intro to Event Sourcing with Groovy
Steve Pember
 
Advanced Microservices - Greach 2015
Steve Pember
 
Richer data-history-event-sourcing
Steve Pember
 
Managing a Microservices Development Team (And advanced Microservice concerns)
Steve Pember
 
Reactive Microservice Architecture with Groovy and Grails
Steve Pember
 
Why Reactive Architecture Will Take Over The World (and why we should be wary...
Steve Pember
 
Richer Data History in Groovy with Event Sourcing
Steve Pember
 
Distributed Reactive Architecture: Extending SOA with Events
Steve Pember
 
Message Oriented Architecture - Gr8conf US 2013
Steve Pember
 

Recently uploaded (20)

PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
PPTX
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PDF
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
PDF
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
Migrating Millions of Users with Debezium, Apache Kafka, and an Acyclic Synch...
MD Sayem Ahmed
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
Tally software_Introduction_Presentation
AditiBansal54083
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Thread In Android-Mastering Concurrency for Responsive Apps.pdf
Nabin Dhakal
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
Wondershare PDFelement Pro Crack for MacOS New Version Latest 2025
bashirkhan333g
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 

An introduction to Reactive applications, Reactive Streams, and options for the JVM (SACon SF 2016)