SlideShare a Scribd company logo
1 of 23
Download to read offline
http://particular.net
Introduzione a NServiceBus
Mauro Servienti
Solution Architect @ Particular Software
Mauro Servienti
Solution Architect @ Particular
mauro.servienti@particular.net
@mauroservienti
//milestone.topics.it
Microsoft MVP - Visual C#
Learn to build better systems
from Udi Dahan
Advanced Distributed Systems Design
2 days (out of 5) for FREE
Sign up here: http://go.particular.net/COPItaly
Access code: MPNGNC
Expiration date: 25/5/2015
Agenda
• Di cosa stiamo parlando?
• Long running workflows: se avete bisogno di uno stato?
Tenets
• NServiceBus è un toolkit costruito secoindo i seguenti dettami ed è
pensato per aiutarci a rispettarli:
• Boundaries are explicit
• Services are autonomous
• Services share schema & contract, not class
• Service compatibility is based upon policy
Messaggi, Comandi ed Eventi
• Messaggi:
• un pezzo di informazione atomica;
• Utilizzati per portare il sistema ad un nuovo stato consistente;
• Comandi:
• messaggi imperativi;
• diretti verso un destinatario ben preciso;
• Eventi:
• una rappresentazione immutabile del passato;
• Diretti a chiunque sia interessato;
• Comandi ed Eventi sono messaggi con una semantica:
• NServiceBus garantisce la semantica di comandi ed eventi;
Messaging patterns
Request / Response
• Un messaggio viene inviato ad un destinatario;
• Il destinatario può rispondere;
• Il mittente conosce perfettamente il destinatario:
• Sa dove è;
• Sa cosa mandare;
• Il destinatario:
• Non è tenuto a sapere dove sia il mittente;
• Sa cosa il mittente si aspetta come risposta;
• Abbiamo accoppiamento tra mittente e destinatario;
Publish / Subscribe
• Un attore nel sistema agisce su qualche cosa:
• L’attore può pubblicare un evento verso l’intero sistema;
• Colui che pubblica non ha nessun interesse nei confronti di chi sottoscrive;
• Un altro attore può essere interessato ad uno o più eventi:
• L`attore sottoscriverà gli eventi di suo interesse;
• Tutta l`intenzione è dal lato di chi sottoscrive:
• Chi sottoscrive conosce chi pubblica, non il contrario;
• Chi pubblica manderà in maniera asincrona una copia dell’evento a
tutti i sottoscrittori;
• C’è meno accoppiamento tra chi pubblica e chi sottoscrive;
Accoppiamento: perché è un problema?
• In una parola sola: versioning;
• Request / Response: al cambio di uno degli attori è quasi certamente
necessario aggiornare anche l’altro;
• Publish / Subscribe: chi pubblica può molto facilmente garantire la
retrocompatibilità;
• Comandi ad uso interno;
• Eventi ad uso pubblico;
Message handlers
Che ci facciamo con sti benedetti messaggi?
Handling
• Ogni volta che un messaggio è ricevuto un handler viene invocato;
• Un handler è il “contenitore” (classe) che ospita il nostro codice;
• Un handler è stateless:
• Ogni volta che arriva un messaggio una nuova istanza viene creata e invocata;
• Ripetete con me «Stateless»;
Endpoints & Hosting
E un handler quindi dove lo piazziamo?
• Gli handler sono raggruppati per servizio (logico);
• I servizi sono ospitati in endpoint;
• Endpoint instance vengono eseguite su Windows:
• Come servizi per Windows:
• Possono essere self hosted;
• Possono usare NServiceBus.Host;
• In qualsiasi tipo di applicazione .NET full framework:
• web, console, WPF, etc…;
Demo
Recap
• Abbiamo visto cosa sono Endpoint, Messaggi e Handler;
• Come configurare un endpoint tramite BusConfiguration;
• Come scambiare messaggi:
• via request/response;
• via publish/subscribe;
• Come funziona il routing;
Ok, ma il trasporto?
Trasporti supportati
Il trasporto deve essere affidabile e persistente
al fine di garantire la consegna e sopravvivere ai problemi
• MSMQ
• RabbitMQ
• Sql Server
• Azure ServiceBus
• Azure Storage Queues
Se avete bisogno di uno stato?
Long running workflows
Saga
• Una saga è un workflow persistente, affidabile e state full:
• Può essere scalato orizzontalmente;
• Sopravvive agli errori;
• È altamente disponibile;
• Una saga garantisce la persistenza dello stato durante
l’orchestramento di più messaggi;
• Garantisce inoltre la consistenza in un ambiente con scalabilità orizzontale;
• Consente di configurare la correlazione tra i messaggi e lo stato;
• Utilizza i “timeout” per prendere decisioni in un mondo asincrono;
Demo
Recap
• La persistenza può essere:
• RavenDB;
• qualsiasi RDBMS supportato da NHibernate;
• Azure Storage Tables;
• Saga:
• Orchestratore;
• Può essere avviata sia da comandi che da eventi;
• Può essere avviata da più di un messaggio;
Q&A
Thanks

More Related Content

Similar to Introduction to NserviceBus

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
 
Introduction to the Particular Platform
Introduction to the Particular PlatformIntroduction to the Particular Platform
Introduction to the Particular PlatformMauro Servienti
 
Brokering over WCF @ dotNetMarche
Brokering over WCF @ dotNetMarcheBrokering over WCF @ dotNetMarche
Brokering over WCF @ dotNetMarcheMauro Servienti
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Mauro Servienti
 
Service Fabric: la potenza dei micro servizi
Service Fabric:  la potenza dei micro serviziService Fabric:  la potenza dei micro servizi
Service Fabric: la potenza dei micro serviziMassimo Bonanni
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloudRiccardo Zamana
 
.NET Microservices
.NET Microservices.NET Microservices
.NET MicroservicesLuca Congiu
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatoreSMAU
 
Microsoft Azure per l'IT Pro
Microsoft Azure per l'IT ProMicrosoft Azure per l'IT Pro
Microsoft Azure per l'IT ProMarco Parenzan
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPCAndrea Dottor
 
Silverlight m v-vm @ DotNetteria
Silverlight m v-vm @ DotNetteriaSilverlight m v-vm @ DotNetteria
Silverlight m v-vm @ DotNetteriaMauro Servienti
 
Da Zero all'open per PA e PMI
Da Zero all'open per PA e PMIDa Zero all'open per PA e PMI
Da Zero all'open per PA e PMINaLUG
 
Push Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background AgentPush Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background AgentDomusDotNet
 
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile Messaging
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile MessagingWhymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile Messaging
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile MessagingWhymca
 

Similar to Introduction to NserviceBus (20)

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.
 
Pub/Sub Basics
Pub/Sub BasicsPub/Sub Basics
Pub/Sub Basics
 
Presentazione Unibo
Presentazione UniboPresentazione Unibo
Presentazione Unibo
 
Introduction to the Particular Platform
Introduction to the Particular PlatformIntroduction to the Particular Platform
Introduction to the Particular Platform
 
Brokering over WCF @ dotNetMarche
Brokering over WCF @ dotNetMarcheBrokering over WCF @ dotNetMarche
Brokering over WCF @ dotNetMarche
 
Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010Dal requisito all'implementazione @ CD2010
Dal requisito all'implementazione @ CD2010
 
Service Fabric: la potenza dei micro servizi
Service Fabric:  la potenza dei micro serviziService Fabric:  la potenza dei micro servizi
Service Fabric: la potenza dei micro servizi
 
Corso Java 3 - WEB
Corso Java 3 - WEBCorso Java 3 - WEB
Corso Java 3 - WEB
 
Azure dayroma java, il lato oscuro del cloud
Azure dayroma   java, il lato oscuro del cloudAzure dayroma   java, il lato oscuro del cloud
Azure dayroma java, il lato oscuro del cloud
 
Laravel & Passport
Laravel & PassportLaravel & Passport
Laravel & Passport
 
OpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studioOpenDevSecOps 2019 - Open devsecops un caso di studio
OpenDevSecOps 2019 - Open devsecops un caso di studio
 
.NET Microservices
.NET Microservices.NET Microservices
.NET Microservices
 
Smau milano 2012 arena social media davide-senatore
Smau milano 2012   arena social media davide-senatoreSmau milano 2012   arena social media davide-senatore
Smau milano 2012 arena social media davide-senatore
 
Microsoft Azure per l'IT Pro
Microsoft Azure per l'IT ProMicrosoft Azure per l'IT Pro
Microsoft Azure per l'IT Pro
 
Alla scoperta di gRPC
Alla scoperta di gRPCAlla scoperta di gRPC
Alla scoperta di gRPC
 
Silverlight m v-vm @ DotNetteria
Silverlight m v-vm @ DotNetteriaSilverlight m v-vm @ DotNetteria
Silverlight m v-vm @ DotNetteria
 
Da Zero all'open per PA e PMI
Da Zero all'open per PA e PMIDa Zero all'open per PA e PMI
Da Zero all'open per PA e PMI
 
Da 0 all'open per PA e PMI
Da 0 all'open per PA e PMIDa 0 all'open per PA e PMI
Da 0 all'open per PA e PMI
 
Push Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background AgentPush Notification, Live Tile e Background Agent
Push Notification, Live Tile e Background Agent
 
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile Messaging
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile MessagingWhymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile Messaging
Whymca Mobyt Strumenti Open Source Per Infrastrutture Dimobile Messaging
 

More from Mauro Servienti

Welcome to the (state) machine @ ExploreDDD 2019
Welcome to the (state) machine @ ExploreDDD 2019Welcome to the (state) machine @ ExploreDDD 2019
Welcome to the (state) machine @ ExploreDDD 2019Mauro Servienti
 
Designing a ui for microservices @ .NET Day Switzerland 2019
Designing a ui for microservices @ .NET Day Switzerland 2019Designing a ui for microservices @ .NET Day Switzerland 2019
Designing a ui for microservices @ .NET Day Switzerland 2019Mauro Servienti
 
Welcome to the (state) machine @ Xe One Day Enterprise Applications
Welcome to the (state) machine @ Xe One Day Enterprise ApplicationsWelcome to the (state) machine @ Xe One Day Enterprise Applications
Welcome to the (state) machine @ Xe One Day Enterprise ApplicationsMauro Servienti
 
All our aggregates are wrong @ NDC Copenhagen 2019
All our aggregates are wrong @ NDC Copenhagen 2019All our aggregates are wrong @ NDC Copenhagen 2019
All our aggregates are wrong @ NDC Copenhagen 2019Mauro Servienti
 
Be like water, my friend @ Agile for Innovation 2019
Be like water, my friend @ Agile for Innovation 2019Be like water, my friend @ Agile for Innovation 2019
Be like water, my friend @ Agile for Innovation 2019Mauro Servienti
 
Microservices architecture is it the right choice to design long-living syste...
Microservices architecture is it the right choice to design long-living syste...Microservices architecture is it the right choice to design long-living syste...
Microservices architecture is it the right choice to design long-living syste...Mauro Servienti
 
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019Mauro Servienti
 
Living organizations, particular software @ do IT Better Parma
Living organizations, particular software @ do IT Better ParmaLiving organizations, particular software @ do IT Better Parma
Living organizations, particular software @ do IT Better ParmaMauro Servienti
 
Welcome to the (state) machine @ Crafted Software
Welcome to the (state) machine @ Crafted SoftwareWelcome to the (state) machine @ Crafted Software
Welcome to the (state) machine @ Crafted SoftwareMauro 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 2018Mauro 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 BetterMauro 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 microservicesMauro 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 poMauro 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 semverMauro Servienti
 
Progettare una UI per i Microservices
Progettare una UI per i MicroservicesProgettare una UI per i Microservices
Progettare una UI per i MicroservicesMauro 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 messagesMauro Servienti
 

More from Mauro Servienti (20)

Welcome to the (state) machine @ ExploreDDD 2019
Welcome to the (state) machine @ ExploreDDD 2019Welcome to the (state) machine @ ExploreDDD 2019
Welcome to the (state) machine @ ExploreDDD 2019
 
Designing a ui for microservices @ .NET Day Switzerland 2019
Designing a ui for microservices @ .NET Day Switzerland 2019Designing a ui for microservices @ .NET Day Switzerland 2019
Designing a ui for microservices @ .NET Day Switzerland 2019
 
Welcome to the (state) machine @ Xe One Day Enterprise Applications
Welcome to the (state) machine @ Xe One Day Enterprise ApplicationsWelcome to the (state) machine @ Xe One Day Enterprise Applications
Welcome to the (state) machine @ Xe One Day Enterprise Applications
 
All our aggregates are wrong @ NDC Copenhagen 2019
All our aggregates are wrong @ NDC Copenhagen 2019All our aggregates are wrong @ NDC Copenhagen 2019
All our aggregates are wrong @ NDC Copenhagen 2019
 
Be like water, my friend @ Agile for Innovation 2019
Be like water, my friend @ Agile for Innovation 2019Be like water, my friend @ Agile for Innovation 2019
Be like water, my friend @ Agile for Innovation 2019
 
Microservices architecture is it the right choice to design long-living syste...
Microservices architecture is it the right choice to design long-living syste...Microservices architecture is it the right choice to design long-living syste...
Microservices architecture is it the right choice to design long-living syste...
 
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
Titles, abstracts, and bio matter... oh my! @ Global Diversity CFP Day 2019
 
Living organizations, particular software @ do IT Better Parma
Living organizations, particular software @ do IT Better ParmaLiving organizations, particular software @ do IT Better Parma
Living organizations, particular software @ do IT Better Parma
 
Welcome to the (state) machine @ Crafted Software
Welcome to the (state) machine @ Crafted SoftwareWelcome to the (state) machine @ Crafted Software
Welcome to the (state) machine @ Crafted Software
 
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
 

Introduction to NserviceBus

  • 1. http://particular.net Introduzione a NServiceBus Mauro Servienti Solution Architect @ Particular Software
  • 2. Mauro Servienti Solution Architect @ Particular mauro.servienti@particular.net @mauroservienti //milestone.topics.it Microsoft MVP - Visual C#
  • 3. Learn to build better systems from Udi Dahan Advanced Distributed Systems Design 2 days (out of 5) for FREE Sign up here: http://go.particular.net/COPItaly Access code: MPNGNC Expiration date: 25/5/2015
  • 4. Agenda • Di cosa stiamo parlando? • Long running workflows: se avete bisogno di uno stato?
  • 5. Tenets • NServiceBus è un toolkit costruito secoindo i seguenti dettami ed è pensato per aiutarci a rispettarli: • Boundaries are explicit • Services are autonomous • Services share schema & contract, not class • Service compatibility is based upon policy
  • 6. Messaggi, Comandi ed Eventi • Messaggi: • un pezzo di informazione atomica; • Utilizzati per portare il sistema ad un nuovo stato consistente; • Comandi: • messaggi imperativi; • diretti verso un destinatario ben preciso; • Eventi: • una rappresentazione immutabile del passato; • Diretti a chiunque sia interessato; • Comandi ed Eventi sono messaggi con una semantica: • NServiceBus garantisce la semantica di comandi ed eventi;
  • 8. Request / Response • Un messaggio viene inviato ad un destinatario; • Il destinatario può rispondere; • Il mittente conosce perfettamente il destinatario: • Sa dove è; • Sa cosa mandare; • Il destinatario: • Non è tenuto a sapere dove sia il mittente; • Sa cosa il mittente si aspetta come risposta; • Abbiamo accoppiamento tra mittente e destinatario;
  • 9. Publish / Subscribe • Un attore nel sistema agisce su qualche cosa: • L’attore può pubblicare un evento verso l’intero sistema; • Colui che pubblica non ha nessun interesse nei confronti di chi sottoscrive; • Un altro attore può essere interessato ad uno o più eventi: • L`attore sottoscriverà gli eventi di suo interesse; • Tutta l`intenzione è dal lato di chi sottoscrive: • Chi sottoscrive conosce chi pubblica, non il contrario; • Chi pubblica manderà in maniera asincrona una copia dell’evento a tutti i sottoscrittori; • C’è meno accoppiamento tra chi pubblica e chi sottoscrive;
  • 10. Accoppiamento: perché è un problema? • In una parola sola: versioning; • Request / Response: al cambio di uno degli attori è quasi certamente necessario aggiornare anche l’altro; • Publish / Subscribe: chi pubblica può molto facilmente garantire la retrocompatibilità; • Comandi ad uso interno; • Eventi ad uso pubblico;
  • 11. Message handlers Che ci facciamo con sti benedetti messaggi?
  • 12. Handling • Ogni volta che un messaggio è ricevuto un handler viene invocato; • Un handler è il “contenitore” (classe) che ospita il nostro codice; • Un handler è stateless: • Ogni volta che arriva un messaggio una nuova istanza viene creata e invocata; • Ripetete con me «Stateless»;
  • 14. E un handler quindi dove lo piazziamo? • Gli handler sono raggruppati per servizio (logico); • I servizi sono ospitati in endpoint; • Endpoint instance vengono eseguite su Windows: • Come servizi per Windows: • Possono essere self hosted; • Possono usare NServiceBus.Host; • In qualsiasi tipo di applicazione .NET full framework: • web, console, WPF, etc…;
  • 15. Demo
  • 16. Recap • Abbiamo visto cosa sono Endpoint, Messaggi e Handler; • Come configurare un endpoint tramite BusConfiguration; • Come scambiare messaggi: • via request/response; • via publish/subscribe; • Come funziona il routing;
  • 17. Ok, ma il trasporto?
  • 18. Trasporti supportati Il trasporto deve essere affidabile e persistente al fine di garantire la consegna e sopravvivere ai problemi • MSMQ • RabbitMQ • Sql Server • Azure ServiceBus • Azure Storage Queues
  • 19. Se avete bisogno di uno stato? Long running workflows
  • 20. Saga • Una saga è un workflow persistente, affidabile e state full: • Può essere scalato orizzontalmente; • Sopravvive agli errori; • È altamente disponibile; • Una saga garantisce la persistenza dello stato durante l’orchestramento di più messaggi; • Garantisce inoltre la consistenza in un ambiente con scalabilità orizzontale; • Consente di configurare la correlazione tra i messaggi e lo stato; • Utilizza i “timeout” per prendere decisioni in un mondo asincrono;
  • 21. Demo
  • 22. Recap • La persistenza può essere: • RavenDB; • qualsiasi RDBMS supportato da NHibernate; • Azure Storage Tables; • Saga: • Orchestratore; • Può essere avviata sia da comandi che da eventi; • Può essere avviata da più di un messaggio;