Post on 16-Apr-2017
REACTIVE SYSTEMSfuture of software architecture
Wojciech Kamiński
25 mln EUR $ of public money at work2016-02-15 18:21:20
TYPICAL DISEASES
➔ Synchronous method calls
➔ Blocking on IO
➔ Heavy server side state
➔ Monolithic apps
HOW SHOULD I BUILD MY APP FOR 1M USERS?
WHAT MATTERS
➔ PERFORMANCE
➔ AVAILABILITY
➔ RESPONSIVENESS
➔ RESILIENCE
➔ ELASTICITY (aka. SCALABILITY)
REACTIVE MANIFESTO
http://www.reactivemanifesto.org/
MESSAGE DRIVEN
➔ Asynchronous
➔ Isolated
➔ Location Transparent
➔ Loosely Coupled
➔ Errors as messages
WHAT TO LOOK INTO
Reactive Streams
ScalaAkka
Play FrameworkApache Spark
Lagom
RxJava, RxJS,Rx.NET, RxScala, RxClojure, RxCpp, Rx.rb, RxPY, RxSwift….
Akka StreamsJava 9
Spring 5
BEST PRACTICES
EMBRACE FUNCTIONAL STYLE
USE LAZILY EVALUATED DATA ABSTRACTIONS
BREAK YOUR APP INTO PIECES
BASE not ACID
DENORMALIZE DATA
TAKE THE COMPUTATION TO YOUR (BIG) DATA
THANK YOU!
Wojciech Kamiński