using the actor model with domain-driven design (ddd) in reactive systems - with vaughn vernon
TRANSCRIPT
![Page 1: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/1.jpg)
Using the Actor Model withDomain-Driven Design (DDD) in
Reactive Systems
@VaughnVernonCopyright © 2012-2017 for{comprehension} All rights reserved.
![Page 3: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/3.jpg)
Books
Consulting and Trainingfor{comprehension}
![Page 4: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/4.jpg)
Objects
![Page 5: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/5.jpg)
1973 - 2003
![Page 6: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/6.jpg)
Cores Matter
More cores, not (much) faster cores
![Page 7: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/7.jpg)
Threading Is Easy!
![Page 8: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/8.jpg)
Threading Is Hard!
![Page 9: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/9.jpg)
Actor Model
Alan Kay: “The big idea is messaging...”
![Page 10: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/10.jpg)
Carl Hewitt, 1973
![Page 11: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/11.jpg)
Jonas Bonér, Akka
![Page 12: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/12.jpg)
Actors AreReactive
![Page 13: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/13.jpg)
Reactive Is
![Page 14: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/14.jpg)
Reactive Is
![Page 15: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/15.jpg)
Reactive Is
![Page 16: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/16.jpg)
Reactive Is
![Page 17: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/17.jpg)
Why the Actor Model Now?
#IoT
![Page 18: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/18.jpg)
Because Cores
88 / 200+ cores with Xeon Phi co-processors
![Page 19: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/19.jpg)
EmbraceLatency
![Page 20: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/20.jpg)
MoreWithLess
![Page 21: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/21.jpg)
Direct Asynchronous Messaging
![Page 22: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/22.jpg)
Lock-Free, Share Nothing
![Page 23: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/23.jpg)
Become:Prepare for Next Message
![Page 24: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/24.jpg)
Actor System
![Page 25: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/25.jpg)
Actor Concurrency
![Page 26: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/26.jpg)
How Many Actors?
50+
100+
1,000,000+
![Page 27: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/27.jpg)
Typical Architecture
![Page 28: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/28.jpg)
Complexity Stack
![Page 29: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/29.jpg)
Simplicity Stack
![Page 30: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/30.jpg)
Inventor of DDD
![Page 31: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/31.jpg)
Essence of DDD
![Page 32: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/32.jpg)
Context Mapping
![Page 33: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/33.jpg)
Responding to RapidNew Business Direction
DDD enables necessaryknowledge crunching
Actors and messages enablesrapid implementation and
clear understanding
![Page 34: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/34.jpg)
Actors and DDD
Alan Kay: “The big idea is messaging...”
Alan Kay: “The Actor model retained moreof what I thought were the good
features of the object idea.”
![Page 35: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/35.jpg)
UbiquitousLanguageAs Actors and messages...
![Page 36: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/36.jpg)
![Page 37: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/37.jpg)
Actor
Command Event
Actor
Command Event
Event StormingTime
Use design-level storming
![Page 38: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/38.jpg)
Aggregates
Transactional Consistency Boundary
![Page 39: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/39.jpg)
Aggregate
● Immutable state object/record
Implementation
● Transition and replace stateupon command
● Emit corresponding event
![Page 40: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/40.jpg)
Reactive Systems
![Page 41: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/41.jpg)
Read: Designing Reactive Systems With The Actor Model (free O'Reilly book)
Watch: Benefits Of The Actor Model For Cloud Computing: A Pragmatic Overview For Java Architects (co-presented with Forrester Research)
Learn from experts: ask about our Embedded Lightbend Engineer (ELE) forkickstarting your Reactive initiatives
More Resources You May Enjoy…
![Page 42: Using the Actor Model with Domain-Driven Design (DDD) in Reactive Systems - with Vaughn Vernon](https://reader035.vdocuments.us/reader035/viewer/2022081401/58ac00891a28abb6718b57c7/html5/thumbnails/42.jpg)
MICROSERVICES. FAST DATA PIPELINES. DISTRIBUTED SYSTEMS.
Austin (TX) - October 18-20, 2017
reactivesummit.org