Get Reactive: Microservices, Programming, and Systems
Jeremy Davis Principal Solution Architect, App Dev @argntprgrmr
Get Reactive: Microservices, Programming, and Systems Jeremy Davis - - PowerPoint PPT Presentation
Get Reactive: Microservices, Programming, and Systems Jeremy Davis Principal Solution Architect, App Dev @argntprgrmr Why Does Any of This Matter? Jakob Nielsen 46 years, 3 numbers 0.1 1 10 3 microservicesjourney.com 4
Get Reactive: Microservices, Programming, and Systems
Jeremy Davis Principal Solution Architect, App Dev @argntprgrmr
microservicesjourney.com 3
46 years, 3 numbers
microservicesjourney.com 4
6
there are always tools
8
Observable.range(1, 100) .groupBy(n -> n % 2 == 0) .flatMap(g -> { return g.takeWhile(i -> i < 30).toList(); }).filter(l -> !l.isEmpty()).forEach(System.out::println);
microservicesjourney.com 9
imicroservicesjourney.com
10
Event Driven Message Driven Embraces realities of the network Embraces realities of data
12
13
because people get bored
microservicesjourney.com 14
things fail
The system must be responsive in the face
A System must stay responsive under various workloads
15
everything changes
16
asynchronous communication
18
the basics
“The microservice architectural style is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies. “ — Martin Fowler http://martinfowler.com/articles/microservices.html
microservicesjourney.com 20
INSERT DESIGNATOR, IF NEEDED (EDIT ON MASTER SLIDE) 22
An API for asynchronous programming with observable streams
INSERT DESIGNATOR, IF NEEDED (EDIT ON MASTER SLIDE) 23
as opposed to traditional programming
Traditional
RxJava
with the return values of an asynchronous call
subscribing
Observable begins to operate on the results
24
Observable.range(1, 100) .groupBy(n -> n % 2 == 0) .flatMap(g -> { return g.toList(); }).forEach(System.out::println);
microservicesjourney.com 25
like the Gang of Four pattern with onCompleted() and onError()
26
INSERT DESIGNATOR, IF NEEDED (EDIT ON MASTER SLIDE) 27
Insert copy
28
29
all about the Observables
INSERT DESIGNATOR, IF NEEDED (EDIT ON MASTER SLIDE) 32
a standard for asynchronous stream processing that isn’t for end users
INSERT DESIGNATOR, IF NEEDED (EDIT ON MASTER SLIDE) 33
Actor Mailbox Actor Mailbox Actor Mailbox Actor Mailbox Actor Mailbox
INSERT DESIGNATOR, IF NEEDED (EDIT ON MASTER SLIDE) 34
Actor Mailbox Actor Mailbox akka://default/user/$a#114635109 akka://default/user/$a#114635173
INSERT DESIGNATOR, IF NEEDED (EDIT ON MASTER SLIDE) 35
36
its all about the actor model
INSERT DESIGNATOR, IF NEEDED (EDIT ON MASTER SLIDE) 37
a toolkit for building reactive applications on the JVM
Event Loop COLUMN HEADING ALL CAPS Vertices Event Bus
38
single threaded event loop
40
its all about verticles
41
messages
42
43
its all about reactive
44
Project Reactor and WebFlux
45
46
its hidden
47
General
Books: https://info.lightbend.com/COLL-20XX-Designing-Reactive-Systems_RES-LP.html Webinars : https://www.lightbend.com/blog/akka-revealed-jvm-architects-journey-from-resilient-actors- to-scalable-clusters https://www.lightbend.com/blog/using-the-actor-model-with-domain-driven-design-ddd-in- reactive-systems-with-vaughn-vernon Blogs: https://developer.lightbend.com/blog/2017-08-10-atotm-akka-messaging-part-1/index.html https://developer.lightbend.com/blog/2017-11-01-atotm-akka-messaging-part-2/index.html
48
Vert.x
Tutorials: http://vertx.io/blog/posts/introduction-to-vertx.html http://escoffier.me/vertx-hol/ Books: http://vertx.io/docs/guide-for-java-devs/ https://developers.redhat.com/promotions/building-reactive-microservices-in-java/ Presentations: https://www.youtube.com/channel/UCGN6L3tRhs92Uer3c6VxOSA
49
RxJava
Books: http://shop.oreilly.com/product/0636920042228.do Code: https://github.com/ReactiveX/RxJava https://github.com/jhusain/learnrxjava Presentations: GOTO 2013 • Functional Reactive Programming with RxJava • Ben Christensen
50
Spring Reactor/WebFlux
Blogs: https://spring.io/blog/2016/06/07/notes-on-reactive-programming-part-i-the-reactive- landscape Presentations: https://www.youtube.com/watch?v=zVNIZXf4BG8
plus.google.com/+RedHat linkedin.com/company/red-hat youtube.com/user/RedHatVideos facebook.com/redhatinc twitter.com/RedHatNews