Gr8conf US 2015: Reactive Options for Groovy
-
Upload
steve-pember -
Category
Software
-
view
312 -
download
2
Transcript of Gr8conf US 2015: Reactive Options for Groovy
THIRDCHANNEL @svpember
Possible Reactive Definitions• Reactive Programming
• Reactive Systems
• Reactive Streams / Reactive Extensions (Rx)
THIRDCHANNEL @svpember
Possible Reactive Definitions• Reactive Programming
• Reactive Systems
• Reactive Streams / Reactive Extensions (Rx)
THIRDCHANNEL @svpember
Agenda• Reactive Systems
• Reactive Streams / Reactive Extensions
• Reactive Groovy
–Johnny Appleseed
“Type a quote here.”
http://www.internetlivestats.com/internet-users/
–Johnny Appleseed
“Type a quote here.”
https://medium.com/reactive-programming/what-is-reactive-programming-bc9fa7f4a7fc
THIRDCHANNEL @svpember
Reactive Systems• The Need for Reactive
• 4 Reactive Principles
• Responsive
• Resilient
THIRDCHANNEL @svpember
Reactive Systems• The Need for Reactive
• 4 Reactive Principles
• Responsive
• Resilient
• Elastic (Scalable)
THIRDCHANNEL @svpember
Reactive Systems• The Need for Reactive
• 4 Reactive Principles
• Responsive
• Resilient
• Elastic (Scalable)
• Asynchronous / Message-Driven
“A standard for asynchronous stream processing of potentially infinite data, across boundaries,
with non-blocking backpressure”
THIRDCHANNEL @svpember
Rx: More Than a Stream• Pull vs Push
• Observable / Subscriber
• Hot / Cold
• Composable
THIRDCHANNEL @svpember
Rx: More Than a Stream• Pull vs Push
• Observable / Subscriber
• Hot / Cold
• Composable
• Async is Easy!
THIRDCHANNEL @svpember
Rx: More Than a Stream• Pull vs Push
• Observable / Subscriber
• Hot / Cold
• Composable
• Async is Easy!
• Backpressure
THIRDCHANNEL @svpember
Rx: More Than a Stream• Pull vs Push
• Observable / Subscriber
• Hot / Cold
• Composable
• Async is Easy!
• Backpressure
• Observable Interaction
THIRDCHANNEL @svpember
Rx: More Than a Stream• Pull vs Push
• Observable / Subscriber
• Hot / Cold
• Composable
• Async is Easy!
• Backpressure
• Observable Interaction
• You really only need 4 functions
THIRDCHANNEL @svpember
Agenda• Reactive Systems
• Reactive Streams / Reactive Extensions
• Groovy Options
THIRDCHANNEL @svpember
Akka & Akka Streams• Library
• Definition of Reactive System
• Typesafe
• Actor-Based Concurrency
• Implemented Streams on Top of Actor Model
THIRDCHANNEL @svpember
RxJava• Library
• Comes out of Netflix
• Part of reactivex.io
• Reactive Streams on the JVM
THIRDCHANNEL @svpember
• HTTP application server
• Non-opinionated
• Built on Reactive Streams, Netty, Java 8, Guava
• Fully embodies reactive
THIRDCHANNEL @svpember
A Few Groovy Options…• Akka
• Akka Streams
• RxJava / RxGroovy
• Ratpack
• Reactor
THIRDCHANNEL @svpember
• Library
• Reactive Streams
• Reactor Pattern
• Built on LMAX Ring Buffer / Disrupter
THIRDCHANNEL @svpember
• Groovy Parallelism and Concurrency
• Built into the language!
• Actors
• DataFlow
• Async Closures
THIRDCHANNEL @svpember
Java 8 Streams• Built into the language
• Meant for ‘pull’ on finite Iterables
• Parallelization has rather severe problems (e.g. https://dzone.com/articles/think-twice-using-java-8)
• No Async
• vs Observables -> potentially infinite items, async, with back pressure
Image Credits• 1000ms Time To glass:
https://docs.google.com/presentation/d/1IRHyU7_crIiCjl0Gvue0WY3eY_eYvFQvSfwQouW9368/present?slide=id.g1e697bbb_0_7
• internet users in the world: http://www.internetlivestats.com/internet-users/• internet users vs Facebook: https://medium.com/reactive-programming/what-is-reactive-programming-bc9fa7f4a7fc• reactivex logo: https://www.stickermule.com/marketplace/2223-rx-reactive-extensions-logo-4• cheetah: www.livescience.com/21944-usain-bolt-vs-cheetah-animal-olympics.html• dominoes: https://www.flickr.com/photos/louish/5611657857/sizes/l/in/photostream/• 300 / Spartans: http://www.300themovie.com/• latop punch: http://walls4joy.com/wallpaper/730566-angry-laptops-punch• mailman: http://thebrandtstandard.com/2013/02/09/u-s-post-office-to-end-saturday-letter-delivery-this-summer/• actor system: http://letitcrash.com/post/30585282971/discovering-message-flows-in-actor-systems-with• slow down: http://forthefamily.org/reminder-slow/• Buffalo: http://news.sd.gov/newsitem.aspx?id=15164• Midvale School for the Gifted: http://www.2ndfirstlook.com/2012/09/gary-larson.html