際際滷

際際滷Share a Scribd company logo
PERSISTR
Event-Driven Design
PERSISTR
About Sasha
Founder of Persistr: an EDD framework and SaaS
platform. Previously, Sasha was Director of Engineering
at Kater, a Mobility-as-a-Service company, where he built
an EDD rideshare app to compete with Uber and Lyft.
Currently, VP Software Dev. Engineering at Mastercard
Persistr is an Open Source client library and server
software that allows developers to quickly and easily build
backend and mobile applications following Event-Driven
Design principles
Sasha Jolich
L: www.linkedin.com/in/sasadjolic
P: +1-604-998-2260
PERSISTR
About Sasha
Inspired by MIT AI Labs
subsumption architecture
Event-driven game code at
EA Sports (Vancouver)
Practicing event-driven
architectures since 1997
Met Greg Young in 2008
(eventsourcing)
UBC with Adam Dymitruk
(event modelling)
PERSISTR
About Sasha
Practicing event-driven
architectures since 1997
Most recently,
built a ridesharing app called Kater
following EDD principles
PERSISTR
About Sasha
Event-Driven Design (EDD)
is a term I coined in summer of 2019
PERSISTR
About Sasha
Event-Driven Design (EDD)
is a term I coined in summer of 2019
To describe the differences between
EDD and other patterns used in the industry
such as event sourcing, event streaming, CQRS, etc
PERSISTR
About Sasha
Event-Driven Design (EDD)
at OReilly Software Architecture NYC in Feb 2019
PERSISTR
About Sasha
COMING SOON
Patterns of
Event-Driven Design
息 2020
A practical guide to
building event-driven
applications
PERSISTR
What is
Event-Driven Design?
PERSISTR
#EDD
Event-Driven Design is a way of building software
where data is versioned with semantic events
PERSISTR
#EDD
Semantic Events are meaningful
PERSISTR
#EDD
They are domain events
PERSISTR
#EDD
Domain events are facts about
what happened in the domain
Customer
booked ride
Customer
picked up
Customer
arrived at
destination
Customer
paid bill &
tipped driver
Driver
available
Driver
assigned
Driver
accepted
Trip
started
Trip
completed
Trip
booked
Customer
booked ride
Driver
available
Trip
booked
CustomersDrivers Trips
PERSISTR
#EDD
Each domain event represents
a change in state of a domain object
Customer
booked ride
Customer
picked up
Customer
arrived at
destination
Customer
paid bill &
tipped driver
Driver
available
Driver
assigned
Driver
accepted
Trip
started
Trip
completed
Trip
booked
Customer
booked ride
Driver
available
Trip
booked
CustomersDrivers Trips
{
customer: John Doe,
pickup: 1234 Granville St,
dropoff: 321 Cambie St
}
PERSISTR
#EDD
Every domain object has an event stream
containing its entire change history
Driver
Customer
Trip
PERSISTR
#EDD
Rebuild any domain objects state by
replaying its event stream
Driver
Customer
Trip
PERSISTR
Driver
#EDD
Cache state of domain objects in a
traditional database
Customer
Trip
SQL or NOSQL
PERSISTR
Driver
#EDD
Cache state of domain objects in a
traditional database
Customer
Trip
SQL or NOSQL
This is called a projection
PERSISTR
Driver
#EDD
Cache state of domain objects in a
traditional database
Customer
Trip
SQL or NOSQL
Projections are lossy and one-way
PERSISTR
Driver
#EDD
Cache state of domain objects in a
traditional database
Customer
Trip
SQL or NOSQL
Event streams + Projections > Traditional
PERSISTR
What are some interesting
applications of EDD?
PERSISTR
EDD Patterns
Documentation-as-code with
executable BDD scenarios
Given 
pattern of past events
When 
changing state
Then 
expect new event
Customer
booked ride
Customer
picked up
Customer
arrived at
destination
Arrive at
destination
PERSISTR
EDD Patterns
Detect event patterns
Customer
picked up
Driver
accepted
Trip
started
Customer
arrived at
destination
Customer
paid bill &
tipped driver
Driver
assigned
Trip
completed
Driver
available
Trip
booked
Customer
booked ride
PERSISTR
EDD Patterns
Detect event patterns, capture metrics, and
take action
Customer
picked up
Driver
accepted
Trip
started
Customer
booked ride
30 secs 2 mins 15 secs
Update drivers ranking based on performance
PERSISTR
EDD Patterns
Secure access to events and streams with
roles and permissions
Driver
Customer
Picked up Arrived at
destination
Paid bill &
tipped driver
Assigned Accepted
Booked ride
Available
 Read allowed events
 Read allowed streams
 Append to streams
 Delete events/streams
PERSISTR
EDD Patterns
Customer signs up and verifies their email.
Customer then books a new trip. A few moments later,
customer is notified of a driver that will pick them up.
Coordinate between components
 Verifications service verifies customer email
 Bookings service books new customer trips
 Assignments service assigns drivers to trips
PERSISTR
EDD Patterns
Coordinate between components
Customer signs up and verifies their email.
Customer then books a new trip. A few moments later,
customer is notified of a driver that will pick them up.
Driver
accepted
Driver
assigned
Customer
picked up
Trip
started
Customer
arrived at
destination
Customer
paid bill &
tipped driver
Trip
completed
Driver
available
Trip
booked
Customer
booked ride
Managed by Assignments service
PERSISTR
EDD Patterns
Coordinate between components
Customer signs up and verifies their email.
Customer then books a new trip. A few moments later,
customer is notified of a driver that will pick them up.
Driver
accepted
Driver
assigned
Customer
picked up
Trip
started
Customer
arrived at
destination
Customer
paid bill &
tipped driver
Trip
completed
Driver
available
Trip
booked
Customer
booked ride
Managed by Bookings service
PERSISTR
EDD Patterns
 Customer names, credit card numbers, birth dates
 Trip history, current location, frequently visited locations
Scrub sensitive PII and/or PCI data from
the shadow production-like environment
Production
Shadow
SCRUB & COPY
PERSISTR
EDD Patterns
Distribute data across multiple
geographic regions
North America
Europe
MIRROR
Australia
South America
PERSISTR
EDD Patterns
Decentralize data across multiple
geographic regions
North America Europe Australia South America
PERSISTR
What is the Computer Science
behind EDD?
PERSISTR
Computer Science
State = Object state given objects event history
Domain Objects = State + Behaviour
Behaviour = Finite State Machine + Time + Reactions
Customer
PERSISTR
Computer Science
 Encode behaviour as a finite state machine
 Make behaviour data driven
 React to state machine transitions or state changes
PERSISTR
What kind of innovation
does EDD enable?
PERSISTR
Innovation
Language-agnostic
Object-oriented
Distributed
Decentralized
Fault-tolerant
Scalable
EDD makes practical
nanoservices possible
PERSISTR
Innovation
EDD makes practical
nanoservices possible
Domain objects reside in different regions
PERSISTR
Innovation
EDD makes practical
nanoservices possible
And can relocate from one region to another
PERSISTR
Innovation
EDD makes practical
nanoservices possible
Domain objects can be mirrored in other regions
in case of network disconnects
PERSISTR
Distributed, decentralized, fault-tolerant, language-agnostic
network of Domain Objects
Innovation
EDD makes practical
nanoservices possible
PERSISTR
Thank You

More Related Content

Similar to EDD - UBC - June 2020 (20)

PDF
Correlation Architecture
sboray
PPT
Event Driven Architecture (EDA), November 2, 2006
Tim Bass
PDF
Maximizing the Value of Event-Driven Architecture.pdf
apidays
PDF
Keynote at Depsa07 - architectural view of event processing
Opher Etzion
PDF
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Igor De Souza
PPTX
DDD eXchange
Skills Matter
ODP
Into the domain
Knoldus Inc.
PPTX
Eliminate the complexities of Event-Driven Architecture with Domain-Driven De...
SheenBrisals
PPTX
Keeping architectures relevant
Brandon Satrom
PDF
DDD - 3 - Domain Driven Design: Event sourcing.pdf
Eleonora Ciceri
PPTX
Cqrs and event sourcing in azure
Sergey Seletsky
PPTX
Domain Driven Design
Muhammad Ali
PDF
Webinar Data Mesh - Part 3
Jeffrey T. Pollock
PPTX
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformation
Slobodan Sipcic
PDF
Event Driven Programming & Architecture
marcoemrich
PPTX
Entity Framework - Entity Data Model (edm)
Eyal Vardi
PPTX
Guido schmutz-jax2011-event-driven soa
Guido Schmutz
PDF
Brochure_Big-Data_Offerings
Anisha Lamba
PDF
Architecting the Future - Event-Driven Paradigms in Software Development.pdf
SeasiaInfotech2
PPTX
Schibsted Spain - Day 1 - DDD Course
Kevin Mas Ruiz
Correlation Architecture
sboray
Event Driven Architecture (EDA), November 2, 2006
Tim Bass
Maximizing the Value of Event-Driven Architecture.pdf
apidays
Keynote at Depsa07 - architectural view of event processing
Opher Etzion
Data Engineer, Patterns & Architecture The future: Deep-dive into Microservic...
Igor De Souza
DDD eXchange
Skills Matter
Into the domain
Knoldus Inc.
Eliminate the complexities of Event-Driven Architecture with Domain-Driven De...
SheenBrisals
Keeping architectures relevant
Brandon Satrom
DDD - 3 - Domain Driven Design: Event sourcing.pdf
Eleonora Ciceri
Cqrs and event sourcing in azure
Sergey Seletsky
Domain Driven Design
Muhammad Ali
Webinar Data Mesh - Part 3
Jeffrey T. Pollock
Evolutionary evnt-driven-architecture-for-accelerated-digital-transformation
Slobodan Sipcic
Event Driven Programming & Architecture
marcoemrich
Entity Framework - Entity Data Model (edm)
Eyal Vardi
Guido schmutz-jax2011-event-driven soa
Guido Schmutz
Brochure_Big-Data_Offerings
Anisha Lamba
Architecting the Future - Event-Driven Paradigms in Software Development.pdf
SeasiaInfotech2
Schibsted Spain - Day 1 - DDD Course
Kevin Mas Ruiz

Recently uploaded (20)

PDF
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
PPTX
arctitecture application system design os dsa
za241967
PPTX
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
PDF
OpenChain Webinar - AboutCode - Practical Compliance in One Stack Licensing...
Shane Coughlan
PPTX
Iobit Driver Booster Pro 12 Crack Free Download
chaudhryakashoo065
PDF
Alur Perkembangan Software dan Jaringan Komputer
ssuser754303
PPTX
Agentforce TDX 2025 Hackathon Achievement
GetOnCRM Solutions
PDF
Telemedicine App Development_ Key Factors to Consider for Your Healthcare Ven...
Mobilityinfotech
PPTX
Introduction to web development | MERN Stack
JosephLiyon
DOCX
Best AI-Powered Wearable Tech for Remote Health Monitoring in 2025
SEOLIFT - SEO Company London
PDF
What Is an Internal Quality Audit and Why It Matters for Your QMS
BizPortals365
PPTX
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
PDF
Automated Test Case Repair Using Language Models
Lionel Briand
PDF
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
PDF
IObit Uninstaller Pro 14.3.1.8 Crack for Windows Latest
utfefguu
PDF
Building scalbale cloud native apps with .NET 8
GillesMathieu10
PDF
AWS Consulting Services: Empowering Digital Transformation with Nlineaxis
Nlineaxis IT Solutions Pvt Ltd
DOCX
Zoho Creator Solution for EI by Elsner Technologies.docx
Elsner Technologies Pvt. Ltd.
PDF
Best Practice for LLM Serving in the Cloud
Alluxio, Inc.
PDF
Code Once; Run Everywhere - A Beginners Journey with React Native
Hasitha Walpola
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
arctitecture application system design os dsa
za241967
Foundations of Marketo Engage - Programs, Campaigns & Beyond - June 2025
BradBedford3
OpenChain Webinar - AboutCode - Practical Compliance in One Stack Licensing...
Shane Coughlan
Iobit Driver Booster Pro 12 Crack Free Download
chaudhryakashoo065
Alur Perkembangan Software dan Jaringan Komputer
ssuser754303
Agentforce TDX 2025 Hackathon Achievement
GetOnCRM Solutions
Telemedicine App Development_ Key Factors to Consider for Your Healthcare Ven...
Mobilityinfotech
Introduction to web development | MERN Stack
JosephLiyon
Best AI-Powered Wearable Tech for Remote Health Monitoring in 2025
SEOLIFT - SEO Company London
What Is an Internal Quality Audit and Why It Matters for Your QMS
BizPortals365
Threat Modeling a Batch Job Framework - Teri Radichel - AWS re:Inforce 2025
2nd Sight Lab
Automated Test Case Repair Using Language Models
Lionel Briand
CodeCleaner: Mitigating Data Contamination for LLM Benchmarking
arabelatso
IObit Uninstaller Pro 14.3.1.8 Crack for Windows Latest
utfefguu
Building scalbale cloud native apps with .NET 8
GillesMathieu10
AWS Consulting Services: Empowering Digital Transformation with Nlineaxis
Nlineaxis IT Solutions Pvt Ltd
Zoho Creator Solution for EI by Elsner Technologies.docx
Elsner Technologies Pvt. Ltd.
Best Practice for LLM Serving in the Cloud
Alluxio, Inc.
Code Once; Run Everywhere - A Beginners Journey with React Native
Hasitha Walpola
Ad

EDD - UBC - June 2020