REACTIVE SYSTEMS
future of software architecture
Wojciech Kamiński
25 mln EUR $ of public money at work
2016-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
Scala
Akka
Play Framework
Apache Spark
Lagom
RxJava, RxJS,
Rx.NET, RxScala,
RxClojure, RxCpp,
Rx.rb, RxPY, RxSwift….
Akka Streams
Java 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

REACTIVE SYSTEMS - WS