what is reactive
TRANSCRIPT
![Page 1: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/1.jpg)
Being Reactive is GoodKevin Webber, Enterprise Advocate, Lightbend
![Page 2: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/2.jpg)
![Page 3: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/3.jpg)
![Page 4: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/4.jpg)
![Page 5: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/5.jpg)
![Page 6: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/6.jpg)
![Page 7: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/7.jpg)
![Page 8: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/8.jpg)
![Page 9: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/9.jpg)
![Page 10: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/10.jpg)
![Page 11: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/11.jpg)
Problem?» we used the right tools to build the wrong thing
![Page 12: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/12.jpg)
Problem?» we used the right tools to build the wrong thing
» proactive isn't always good
![Page 13: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/13.jpg)
Problem?» we used the right tools to build the wrong thing
» proactive isn't always good
» reactive isn't always bad
![Page 14: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/14.jpg)
![Page 15: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/15.jpg)
![Page 16: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/16.jpg)
![Page 17: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/17.jpg)
![Page 18: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/18.jpg)
![Page 19: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/19.jpg)
» let principles guide our
» design
» tool selection
» implementation choices
![Page 20: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/20.jpg)
» let principles guide our
» design
» tool selection
» implementation choices
» principles should be accessible and universal
![Page 21: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/21.jpg)
» let principles guide our
» design
» tool selection
» implementation choices
» principles should be accessible and universal
» principles should help people
» reactive helps engineers, lines of business, and enterprises to capture opportunities
![Page 22: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/22.jpg)
What is Reactive?
![Page 23: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/23.jpg)
asynchronous, non-blocking, real-time, highly-available, loosely coupled, scalable, fault-tolerant, concurrent, reactive, event-driven, push instead of pull, distributed, low latency, high throughput...
![Page 24: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/24.jpg)
asynchronous, non-blocking, real-time, highly-available, loosely coupled, scalable, fault-tolerant, concurrent, reactive, event-driven, push instead of pull, distributed, low latency, high throughput...
Too complicated. We need a simple vocabulary.
![Page 25: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/25.jpg)
![Page 26: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/26.jpg)
![Page 27: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/27.jpg)
Overview
» Lagom - Microservices framework
» Play - RESTful API framework
» Akka - Distributed computing toolkit
» Spark - General purpose compute engine
![Page 28: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/28.jpg)
Akka Users
![Page 29: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/29.jpg)
Reactive Principles
![Page 30: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/30.jpg)
Message-driven» Akka provides all of the
building blocks of reactive systems
» distribution
» location transparency
» isolation
![Page 31: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/31.jpg)
Resilient» supervision
![Page 32: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/32.jpg)
Resilient» dedicated separate error
channel
![Page 33: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/33.jpg)
Resilient» location transparency
» remoting and clustering
» references are stable
![Page 34: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/34.jpg)
Resilient» location transparency
» senders can still emit events even when actors move from one location to another
![Page 35: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/35.jpg)
Elastic» scale up
» async
» non-blocking
» scale out
» immutable data
» share nothing
![Page 36: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/36.jpg)
Responsive» responsive to events
» events within the business (existing customers)
» events in the market (new opportunity)
» responsive to technology
» load, failure
» emerging technologies (reactive architecture)
» responsive to users
![Page 37: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/37.jpg)
» responsivea request for service is always answered, even when failures occur
» elasticservices scale up and down on demand
» resilientservices recover from failures
» message drivenservices respond to the world, not attempt to control what it does
![Page 38: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/38.jpg)
How do we build reactive systems?Applying the Reactive principles to build a fully reactive microservices system, using:
» The Lightbend Reactive Platform
» Third-party tools
» Existing infrastructure (hybrid-cloud, etc)
![Page 39: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/39.jpg)
![Page 40: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/40.jpg)
Fast Data Architecture» Akka Streams
» 1-10 second latency per-event processing
» Spark Streaming
» 10+ second mini-batch event processing
» Streams become the glue of the organization
![Page 41: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/41.jpg)
Heritage Modernization» Carve up a monolith
» Akka and Play are general purpose, powerful toolkits well suited to enterprise environments
» Java, Scala, JVM
![Page 42: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/42.jpg)
MSA» Push-streaming or pub-sub
for service-to-service messaging
» API gateway in front of the MSA for consumers
» Aggregation
» Authentication/authorization
» Protocol conversion
» Etc
![Page 43: What is reactive](https://reader031.vdocuments.site/reader031/viewer/2022030314/589abba21a28abff4f8b6c11/html5/thumbnails/43.jpg)
Thank you!Kevin Webber
Medium: medium.com/@kvnwbbrTwitter: @kvnwbbr
Point of contact