SlideShare a Scribd company logo
welcome to the
(state) machine
It’s all right, I know where you’ve been
mauroservienti
Mauro Servienti
All I want to do when I wake up in
the morning is…
(cit. Rosanna, Toto, Toto IV)
mauroservienti
mauroservienti
buy ticket(s)
stage dive… :-)
mauroservienti
All what they want to do is…
mauroservienti
mauroservienti
display available tickets
reserve ticket(s)
charge my credit card
ship ticket(s)
mauroservienti
sometimes order doesn’t matter
sometimes it does!
mauroservienti
Naïve way
var seats = await DisplayAvailableSeats();
var selectedSeats = seats.Take(2);
var reservation = await ReserveSeats(selectedSeats);
var authorization = await AuthorizeCard(reservation);
if (authorization.Succeeded)
{
await ChargeCard(authorization);
await ShipTickets(reservation);
}
mauroservienti
Naïve way
var seats = await DisplayAvailableSeats();
var selectedSeats = seats.Take(2);
var reservation = await ReserveSeats(selectedSeats);
var authorization = await AuthorizeCard(reservation);
if (authorization.Succeeded)
{
await ChargeCard(authorization);
await ShipTickets(reservation);
}
Remote requests
mauroservienti
Remote requests
Tickets Selection
Credit Card
Gateway/ACL
Orders Manager
Order Checked-out
AuthorizeCard
request/response
Reservation
ConfirmTickets
request/response
Credit Card
Gateway/ACL
ChargeCard
request/response
Shipping
Gateway/ACL
Shiptickets
request/response
mauroservienti
Reservation
SelectTickets
request/response
Process Managers
Tickets Selection
Credit Card
Gateway/ACL
Orders Manager
Checkout request
AuthorizeCard
request/response
Reservation
ConfirmTickets
request/response
Credit Card
Gateway/ACL
ChargeCard
request/response
Shipping
Gateway/ACL
Shiptickets
request/response
Some sort of orchestration is still required
mauroservienti
Reservation
SelectTickets
request/response
Process Managers
Orchestration is not the only
issue we should get rid of…
Process Managers (a different point of view)
New requirement: collect tickets at the venue
OrderId ShippingId ShippingStatus Etc
12 1337 Delivered …
58 1338 Pending …
Orders table
mauroservienti
mauroservienti
like a punch card
Process Managers
own the process
Ticket(s)
Insurance
mauroservienti
Process Managers, a retrospective.
•Violate Single Responsibility Principle
•Single Unit of Deployment
•Conflicting Changes/Merge Conflicts
•Contention/Performance Bottleneck
mauroservienti
mauroservienti
there is no Spoon
Process Manager
chop
up
mauroservienti
Autonomy
Collaborative Domains
mauroservienti
sagas autonomy in
collaborative domains
mauroservienti
multiple workflows,
each providing
compensating
actions for every
step of the
workflow where it
can fail
mauroservienti
multiple workflows,
each providing
compensating
actions for every
step of the
workflow where it
can fail
mauroservienti
reserve ticket(s)
charge my credit card
ship tickets
mauroservienti
Shipping
Finance
Tickets Ordering Saga
mauroservienti
ReservationReservation
Checked-out
Payment Authorized
Order Created
Payment Succeeded
Available Tickets
Select tickets
Shopping Cart
Proceed to checkout
workflow
workflow
workflow
Shipping
Finance
Tickets Ordering Saga
mauroservienti
ReservationReservation
Checked-out
Payment Authorized
Order Created
Payment Succeeded
Available Tickets
Select tickets
Shopping Cart
Proceed to checkout
Policy
Policy
Policy
Shipping
Finance
mauroservienti
Reservation
Available Tickets
Select tickets
Shopping Cart
Proceed to checkout
Policy
Policy
Policy
Reservation
Checked-out
Payment Authorized
Order Created
Payment Succeeded
Pivotal Events
mauroservienti
Let’s open the black box
Shipping
ReservationPayment
Gateway
Finance
Finance
Initiate Payment
Authorize Card
Courier
Gateway
Tickets Ordering Saga
mauroservienti
Available Tickets
Select tickets
Reservation
Shopping Cart
Proceed to checkout
Reservation
Reservation
Checked-out
Payment Authorized
Order CreatedFinance
Payment
Gateway
Charge Card
Payment Succeeded Delivery Pick-up
Sounds more complex than
the naïve approach, doesn’t it?
mauroservienti
New requirement
• Collect tickets at the venue
mauroservienti
Shipping
ReservationPayment
Gateway
Finance
Finance
Initiate Payment
Authorize Card
Courier
Gateway
mauroservienti
Available Tickets
Select tickets
Reservation
Shopping Cart
Proceed to checkout
Reservation
Reservation
Checked-out
Payment Authorized
Order CreatedFinance
Payment
Gateway
Charge Card
Payment Succeeded Delivery Pick-up
Shipping Policy
Order Created Payment Succeeded
NY
Batch Shipping
at the Venue
Policy
Store for Venue
Delivery
Mark as Complete
Courier
Gateway
Batch Delivery Pick-up
Courier
Gateway
Delivery Pick-up
Deliver Tickets
Mark as Complete
mauroservienti
Shipping Policy
Shipping Policy
Delivery-Mode:
- Collect-at-the-Venue
- Ship-at-Home
?
Is Collect-at-the-Venue?
Order Created Payment Succeeded
NY
Store for Venue
Delivery
Mark as Complete
Courier
Gateway
Delivery Pick-up
Deliver Tickets
Mark as Complete
mauroservienti
Shipping Policy
Shipping Policy
Delivery-Mode:
- Collect-at-the-Venue
- Ship-at-Home
?
Is Collect-at-the-Venue?
Batch Shipping
at the Venue
Policy
Courier
Gateway
Batch Delivery Pick-up
Mark as Complete
multiple workflows,
each providing
compensating
actions for every
step of the
workflow where it
can fail
mauroservienti
Shipping
ReservationPayment
Gateway
Finance
Finance
Initiate Payment
Authorize Card
Courier
Gateway
Tickets Ordering Saga
mauroservienti
Available Tickets
Select tickets
Reservation
Shopping Cart
Proceed to checkout
Reservation
Reservation
Checked-out
Payment Authorized
Order CreatedFinance
Payment
Gateway
Charge Card
Payment Succeeded Delivery Pick-up
Payment
Gateway
Finance
Finance
Initiate Payment
Authorize Card
Payment Policy
mauroservienti
Reservation
Checked-out
Payment Authorized
Finance
Payment
Gateway
Charge Card
Payment Succeeded
Do we need a
Reservation Failed event?
Payment
Gateway
Finance
Finance
Initiate Payment
Authorize Card
Payment Policy
mauroservienti
Payment Authorized
48hrs to release money
Reservation
Checked-out
Reservation
Checked-out
Payment
Gateway
Finance
Finance
Initiate Payment
Authorize Card
Payment Policy
mauroservienti
Payment Authorized
Finance
Payment
Gateway
Charge Card
Payment Succeeded
48hrs to release money
Payment
Gateway
Release Money
Reserved?N
Y
Do nothing… Reservation
Order Created
48hrs later…
Mark as Complete
What’s a timeout?
void Handle(ReservationCheckedout evt)
{
Send(new AuthorizationRequest(…));
}
void Handle(AuthorizationRequest msg)
{
var authId = await AuthorizeCard(…);
Reply(new AuthorizationResponse(authId));
}
void Handle(AuthorizationResponse msg)
{
Publish(new PaymentAuthorized());
RequestTimeout(TimeSpan.FromHours(48));
}
void Timeout()
{
if(NotReserved){ … }
}
Payment
Gateway
Finance
Authorize Card
Payment Authorized
48hrs to release money
Reservation
Checked-out
Reserved?
Payment
Gateway
FinanceFinanceFinance
What’s a timeout?
void Handle(ReservationCheckedout evt)
{
Send(new AuthorizationRequest(…));
}
void Handle(AuthorizationRequest msg)
{
var authId = await AuthorizeCard(…);
Reply(new AuthorizationResponse(authId));
}
void Handle(AuthorizationResponse msg)
{
Publish(new PaymentAuthorized());
RequestTimeout(TimeSpan.FromHours(48));
}
void Timeout()
{
if(NotReserved){ … }
}
Payment
Gateway
Finance
Authorize Card
Payment Authorized
48hrs to release money
Reservation
Checked-out
Reserved?
Payment
Gateway
FinanceFinanceFinance
What’s a timeout?
void Handle(ReservationCheckedout evt)
{
Send(new AuthorizationRequest(…));
}
void Handle(AuthorizationRequest msg)
{
var authId = await AuthorizeCard(…);
Reply(new AuthorizationResponse(authId));
}
void Handle(AuthorizationResponse msg)
{
Publish(new PaymentAuthorized());
RequestTimeout(TimeSpan.FromHours(48));
}
void Timeout()
{
if(NotReserved){ … }
}
Payment
Gateway
Finance
Authorize Card
Payment Authorized
48hrs to release money
Reservation
Checked-out
Reserved?
Payment
Gateway
FinanceFinanceFinance
Sagas (a different point of view)
OrderId ShippingId ShippingStatus Etc
12 1337 Delivered …
58 1338 Pending …
Orders table
Reservation Shipping Finance
OrderId TicketId
12 ABC
58 ACD
Reservations table
OrderId Address
12 Milan, Italy
58 Paris, France
Shipping table
OrderId Status
12 Paid
58 Overdue
Invoices table
VS
mauroservienti
Sagas (a different point of view)
Reservation Shipping Finance
Reservations table
OrderId Address
12 Milan, Italy
58 Paris, France
Shipping table
OrderId Status
12 Paid
58 Overdue
Invoices table
mauroservienti
Each service can evolve independently
OrderId TicketId
12 ABC
58 ACD
Sagas
•Business Process is distributed
•Respect Single Responsibility Principle
•Simpler/not conflicting evolution
•Independent Units of Deployment
•Independent scale out
mauroservienti
Every year is getting shorter
never seem to find the time…
Sagas Demo
bit.ly/eddd-state-machine
Udi Dahan about Sagas
go.particular.net/eddd-state-machine
mauroservienti
Demos: bit.ly/eddd-state-machine
Videos: go.particular.net/eddd-state-machine
Pitfalls
• Monitor the (distributed) state
mauroservienti
Demos: bit.ly/eddd-state-machine
Videos: go.particular.net/eddd-state-machine
Takeaways
• Behaviors define how to designs processes
• Follow the coupling, not the data
• Identify processes and chop them up by “service”
mauroservienti
Demos: bit.ly/eddd-state-machine
Videos: go.particular.net/eddd-state-machine
Takeaways
• Behaviors define how to designs processes
• Use Delayed Messaging to model time
• Simplifies making decisions in an async world
mauroservienti
there is no
such thing as
orchestration
mauroservienti
@mauroservienti | #EDDD
Mauro Servienti
Solution Architect @ Particular Software
the makers of NServiceBus
mauro.servienti@particular.net
@mauroservienti
//github.com/mauroservienti
//milestone.topics.it
mauroservienti
@mauroservienti | #EDDD
Demos: bit.ly/eddd-state-machine
Videos: go.particular.net/eddd-state-machine
mauroservienti

More Related Content

More from Mauro Servienti

PO is dead, long live the PO - Italian Agile Day 2018
PO is dead, long live the PO - Italian Agile Day 2018PO is dead, long live the PO - Italian Agile Day 2018
PO is dead, long live the PO - Italian Agile Day 2018
Mauro Servienti
 
Design a UI for your Microservices @ Do IT Better
Design a UI for your Microservices @ Do IT BetterDesign a UI for your Microservices @ Do IT Better
Design a UI for your Microservices @ Do IT Better
Mauro Servienti
 
Microservices and pineapple on pizza what do they have in common - dos and ...
Microservices and pineapple on pizza   what do they have in common - dos and ...Microservices and pineapple on pizza   what do they have in common - dos and ...
Microservices and pineapple on pizza what do they have in common - dos and ...
Mauro Servienti
 
All our aggregates are wrong (ExploreDDD 2018)
All our aggregates are wrong (ExploreDDD 2018)All our aggregates are wrong (ExploreDDD 2018)
All our aggregates are wrong (ExploreDDD 2018)
Mauro Servienti
 
Designing a ui for microservices
Designing a ui for microservicesDesigning a ui for microservices
Designing a ui for microservices
Mauro Servienti
 
Po is dead, long live the po
Po is dead, long live the poPo is dead, long live the po
Po is dead, long live the po
Mauro Servienti
 
Shipping code is not the problem, deciding what to ship it is!
Shipping code is not the problem, deciding what to ship it is!Shipping code is not the problem, deciding what to ship it is!
Shipping code is not the problem, deciding what to ship it is!
Mauro Servienti
 
GraphQL - Where are you from? Where are you going?
GraphQL - Where are you from? Where are you going?GraphQL - Where are you from? Where are you going?
GraphQL - Where are you from? Where are you going?
Mauro Servienti
 
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Dall'idea al deploy   un lungo viaggio che passa per git flow e semverDall'idea al deploy   un lungo viaggio che passa per git flow e semver
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Mauro Servienti
 
Progettare una UI per i Microservices
Progettare una UI per i MicroservicesProgettare una UI per i Microservices
Progettare una UI per i Microservices
Mauro Servienti
 
The road to a Service Oriented Architecture is paved with messages
The road to a Service Oriented Architecture is paved with messagesThe road to a Service Oriented Architecture is paved with messages
The road to a Service Oriented Architecture is paved with messages
Mauro Servienti
 
La via verso SOA è lastricata di messaggi
La via verso SOA è lastricata di messaggiLa via verso SOA è lastricata di messaggi
La via verso SOA è lastricata di messaggi
Mauro Servienti
 
Implementare il single sign on con IdentityServer
Implementare il single sign on con IdentityServerImplementare il single sign on con IdentityServer
Implementare il single sign on con IdentityServer
Mauro Servienti
 
How we daily manage and work in a dispersed company: Particular Software
How we daily manage and work in a dispersed company: Particular SoftwareHow we daily manage and work in a dispersed company: Particular Software
How we daily manage and work in a dispersed company: Particular Software
Mauro Servienti
 
From cogs to nirvana
From cogs to nirvanaFrom cogs to nirvana
From cogs to nirvana
Mauro Servienti
 
DevOps e scelte architetturali: tre scenari reali
DevOps e scelte architetturali: tre scenari realiDevOps e scelte architetturali: tre scenari reali
DevOps e scelte architetturali: tre scenari reali
Mauro Servienti
 
Croce e delizia del lavoro remoto
Croce e delizia del lavoro remotoCroce e delizia del lavoro remoto
Croce e delizia del lavoro remoto
Mauro Servienti
 
Croce e delizia del lavoro remoto
Croce e delizia del lavoro remotoCroce e delizia del lavoro remoto
Croce e delizia del lavoro remoto
Mauro Servienti
 
Applicazioni event driven__un_esempio_con_angular_js.
Applicazioni event driven__un_esempio_con_angular_js.Applicazioni event driven__un_esempio_con_angular_js.
Applicazioni event driven__un_esempio_con_angular_js.
Mauro Servienti
 
Designing a ui for microservices
Designing a ui for microservicesDesigning a ui for microservices
Designing a ui for microservices
Mauro Servienti
 

More from Mauro Servienti (20)

PO is dead, long live the PO - Italian Agile Day 2018
PO is dead, long live the PO - Italian Agile Day 2018PO is dead, long live the PO - Italian Agile Day 2018
PO is dead, long live the PO - Italian Agile Day 2018
 
Design a UI for your Microservices @ Do IT Better
Design a UI for your Microservices @ Do IT BetterDesign a UI for your Microservices @ Do IT Better
Design a UI for your Microservices @ Do IT Better
 
Microservices and pineapple on pizza what do they have in common - dos and ...
Microservices and pineapple on pizza   what do they have in common - dos and ...Microservices and pineapple on pizza   what do they have in common - dos and ...
Microservices and pineapple on pizza what do they have in common - dos and ...
 
All our aggregates are wrong (ExploreDDD 2018)
All our aggregates are wrong (ExploreDDD 2018)All our aggregates are wrong (ExploreDDD 2018)
All our aggregates are wrong (ExploreDDD 2018)
 
Designing a ui for microservices
Designing a ui for microservicesDesigning a ui for microservices
Designing a ui for microservices
 
Po is dead, long live the po
Po is dead, long live the poPo is dead, long live the po
Po is dead, long live the po
 
Shipping code is not the problem, deciding what to ship it is!
Shipping code is not the problem, deciding what to ship it is!Shipping code is not the problem, deciding what to ship it is!
Shipping code is not the problem, deciding what to ship it is!
 
GraphQL - Where are you from? Where are you going?
GraphQL - Where are you from? Where are you going?GraphQL - Where are you from? Where are you going?
GraphQL - Where are you from? Where are you going?
 
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
Dall'idea al deploy   un lungo viaggio che passa per git flow e semverDall'idea al deploy   un lungo viaggio che passa per git flow e semver
Dall'idea al deploy un lungo viaggio che passa per git flow e semver
 
Progettare una UI per i Microservices
Progettare una UI per i MicroservicesProgettare una UI per i Microservices
Progettare una UI per i Microservices
 
The road to a Service Oriented Architecture is paved with messages
The road to a Service Oriented Architecture is paved with messagesThe road to a Service Oriented Architecture is paved with messages
The road to a Service Oriented Architecture is paved with messages
 
La via verso SOA è lastricata di messaggi
La via verso SOA è lastricata di messaggiLa via verso SOA è lastricata di messaggi
La via verso SOA è lastricata di messaggi
 
Implementare il single sign on con IdentityServer
Implementare il single sign on con IdentityServerImplementare il single sign on con IdentityServer
Implementare il single sign on con IdentityServer
 
How we daily manage and work in a dispersed company: Particular Software
How we daily manage and work in a dispersed company: Particular SoftwareHow we daily manage and work in a dispersed company: Particular Software
How we daily manage and work in a dispersed company: Particular Software
 
From cogs to nirvana
From cogs to nirvanaFrom cogs to nirvana
From cogs to nirvana
 
DevOps e scelte architetturali: tre scenari reali
DevOps e scelte architetturali: tre scenari realiDevOps e scelte architetturali: tre scenari reali
DevOps e scelte architetturali: tre scenari reali
 
Croce e delizia del lavoro remoto
Croce e delizia del lavoro remotoCroce e delizia del lavoro remoto
Croce e delizia del lavoro remoto
 
Croce e delizia del lavoro remoto
Croce e delizia del lavoro remotoCroce e delizia del lavoro remoto
Croce e delizia del lavoro remoto
 
Applicazioni event driven__un_esempio_con_angular_js.
Applicazioni event driven__un_esempio_con_angular_js.Applicazioni event driven__un_esempio_con_angular_js.
Applicazioni event driven__un_esempio_con_angular_js.
 
Designing a ui for microservices
Designing a ui for microservicesDesigning a ui for microservices
Designing a ui for microservices
 

Recently uploaded

Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
Paul Brebner
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
Softradix Technologies
 
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
ICS
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
kgyxske
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
Zycus
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio, Inc.
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
jrodriguezq3110
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
Alina Yurenko
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
kalichargn70th171
 
Computer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdfComputer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdf
chandangoswami40933
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
ShulagnaSarkar2
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
Alina Yurenko
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
kalichargn70th171
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
KrishnaveniMohan1
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
Yara Milbes
 
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdfSoftware Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
kalichargn70th171
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
kalichargn70th171
 

Recently uploaded (20)

Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...Superpower Your Apache Kafka Applications Development with Complementary Open...
Superpower Your Apache Kafka Applications Development with Complementary Open...
 
Cost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App DevelopmentCost-Effective Strategies For iOS App Development
Cost-Effective Strategies For iOS App Development
 
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA ComplianceSecure-by-Design Using Hardware and Software Protection for FDA Compliance
Secure-by-Design Using Hardware and Software Protection for FDA Compliance
 
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdfBaha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
Baha Majid WCA4Z IBM Z Customer Council Boston June 2024.pdf
 
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
一比一原版(sdsu毕业证书)圣地亚哥州立大学毕业证如何办理
 
How GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdfHow GenAI Can Improve Supplier Performance Management.pdf
How GenAI Can Improve Supplier Performance Management.pdf
 
bgiolcb
bgiolcbbgiolcb
bgiolcb
 
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data PlatformAlluxio Webinar | 10x Faster Trino Queries on Your Data Platform
Alluxio Webinar | 10x Faster Trino Queries on Your Data Platform
 
Microsoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptxMicrosoft-Power-Platform-Adoption-Planning.pptx
Microsoft-Power-Platform-Adoption-Planning.pptx
 
All you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVMAll you need to know about Spring Boot and GraalVM
All you need to know about Spring Boot and GraalVM
 
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdfThe Comprehensive Guide to Validating Audio-Visual Performances.pdf
The Comprehensive Guide to Validating Audio-Visual Performances.pdf
 
Computer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdfComputer Science & Engineering VI Sem- New Syllabus.pdf
Computer Science & Engineering VI Sem- New Syllabus.pdf
 
14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision14 th Edition of International conference on computer vision
14 th Edition of International conference on computer vision
 
Going AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applicationsGoing AOT: Everything you need to know about GraalVM for Java applications
Going AOT: Everything you need to know about GraalVM for Java applications
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...
 
Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.Penify - Let AI do the Documentation, you write the Code.
Penify - Let AI do the Documentation, you write the Code.
 
The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024The Rising Future of CPaaS in the Middle East 2024
The Rising Future of CPaaS in the Middle East 2024
 
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdfSoftware Test Automation - A Comprehensive Guide on Automated Testing.pdf
Software Test Automation - A Comprehensive Guide on Automated Testing.pdf
 
What is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdfWhat is Continuous Testing in DevOps - A Definitive Guide.pdf
What is Continuous Testing in DevOps - A Definitive Guide.pdf
 

Welcome to the (state) machine @ ExploreDDD 2019

Editor's Notes

  1. Red Hot Chili Peppers, 1989 Ritmo tribale Litfiba
  2. Surface vs Highways
  3. tricked by domain experts, they talk about tickets ordering process
  4. What’s a collaborative domain? IKEA furniture and shipping at a retail shop