Reactive application

38
Reactive Application Christophe Marchal Rafael Souza @toff63 @rafael_psouza

description

Talk about Functional application and Reactive application with example of Scala Future, Akka actors and a chat using the latest play framework version

Transcript of Reactive application

Page 1: Reactive application

Reactive Application

Christophe Marchal Rafael Souza@toff63 @rafael_psouza

Page 2: Reactive application

Object Oriented ProgrammingHard to reuse objects

Functional ProgrammingEasy to reuse small functions

Functional Paradigm: Composition

Page 3: Reactive application

“In modern applications involving highly concurrent computing on multicore machines, state is the problem”

Functional programming: A step backward - infoworld.com

Functional Paradigm: Stateless

Page 5: Reactive application

Evolution of large applications

Page 6: Reactive application

Response Time

Page 7: Reactive application

Uptime

Page 8: Reactive application

Data Size

Page 9: Reactive application

Hosting

Page 10: Reactive application

“reacting to events or situations rather than acting first to change or prevent something”

Cambridge

“Showing a response to a stimulus” Oxford

What Reactive means?

Page 11: Reactive application

Reactive traits

Page 12: Reactive application
Page 13: Reactive application

Scaling up

Page 14: Reactive application

Scaling out

Page 15: Reactive application

Concurrency handled by container

Page 16: Reactive application

More user, more thread

Page 17: Reactive application

Efficiency issue

Page 18: Reactive application

Thread dump result

Page 19: Reactive application

Computer time scale

Page 20: Reactive application

Paradigm shift: Event driven

Page 21: Reactive application
Page 22: Reactive application

Scala Future

Page 23: Reactive application

Handling failure

Page 24: Reactive application

Traditional Failure Handling

Page 25: Reactive application

Node stop responding

Page 26: Reactive application

Domino effect

Page 27: Reactive application

Bulkhead pattern

Page 28: Reactive application

● Stateful

● Asynchronous

● Only communicate through message

Create Bulk: Actors

Page 29: Reactive application

Actor tree

Page 30: Reactive application

Akka: Supervision

Page 31: Reactive application

Akka: Supervision

Page 32: Reactive application

Streaming data to the screen

Page 33: Reactive application

Using Play! 2.3-M2

Page 34: Reactive application

Websocket

Page 35: Reactive application

Controller

Page 36: Reactive application

Backend Actor

Page 37: Reactive application
Page 38: Reactive application

Thanks!Obrigado!

Christophe Marchal Rafael Souza@toff63 @rafael_psouza