SlideShare a Scribd company logo
reactive applications
new kids for your building blocks
09/2013
twitter.com/MikeBild
la, la, la, la, la, la tonight
• quick
• hard
• dirty
Reactive
developers
• translating the reactive concepts into code
• use Rx / RxJS for example
• https://gist.github.com/MikeBild/6725003
yeah
why
• unstructured information
• real-time analytics and intelligence
• high user interaction and collaboration
• clusters vs. elasticity
• big-data vs. high-frequency
why
• historical analysis
• triggered finite state machines
• data synchronization
• more and more connected devices
• business domain complexity
working software
• is useful information output that
• fits business domain
• fits non-functional requirements
new challenges
• cause - effect
• time correlation
• information/data correlation
reactive manifesto
• it‘s a concept
• technology agnostic
• pros and cons
• event / message centric
4 building blocks
• Event-Driven
• Scalable
• Resilient
• Responsive and Interactive
react to ...
• events
• time
• load
• failures
• users
how
• RxJava | Java, Clojure, Scala, Groovy, JRuby
• Rx.NET | C#, F#,VB
• RxJS | JavaScript | NodeJS
• ReactiveCocoa | Objective-C
• RxCpp | C++
• more and more
glorious
• NetFlix
• GitHub for Windows / Mac
• more and more
events
• things that have happened
• events represent state changes
• data structure
• implicit and explicit information
• payload
event-driven
• events
• sources
• analytics & abstracting
• handling
event-driven
• highly decoupled
• ever non-blocking
• reactive from top to bottom
• input - processing - output
• asynchronous Event-Stream(s)
translate into code
• event sources structure
• create and compose
• transform, filter, aggregate, group, combine
scalable
• easy to expand or update on demand
• elastic scale out and scale in
• helps to manage risk
scalable
• location transparent
• message passing style
• abstraction for opportunities
• local context or distributed within same
semantic
translate into code
• composing
• scheduling
• tasks
resilient
• no downtime - be stale or compensate
• failures/errors as a first class construct
• failures are business decisions
• react to manage failures
• monitor what possible
translate into code
• state
• resources
• catch errors
• retry
• compensation
responsive
• react to a stimulus
• high user to system interaction
• „always ready“
responsive
• permanent connection between user and
system
• collaborative environment
• real-time feedback
translate into code
• throttle, delay time
• analytics
• filter
• transform
design
• isolated / autonomous blocks
• async event-driven message passing
• location transparent
• ever responsive
• explicit failure management
@reactivemanifesto.org
conclusion
What does that mean here?
@reactivemanifesto.org
reactive applications
• Observable Models
• Event Streams
• Stateful Clients
reactive applications
• react from top to buttom to top
• observe data changes
• execute logic
• store state
• real-time update UI
thanks
• http://www.reactivemanifesto.org/
• https://github.com/Reactive-Extensions/RxJS-DOM
• https://github.com/Reactive-Extensions/RxJS
• http://mywebbasedcomputer.com/users/johngslater/tech/rx/bubbleDiagrams.html
• https://github.com/Netflix/RxJava
• https://github.com/blog/1127-github-for-windows
• https://netflix.com

More Related Content

Reactive Applications