SlideShare una empresa de Scribd logo
1 de 24
SOA
With NServiceBus
     Sean Farmar
What is the problem
   we are trying to solve?

• Scale
• Growth
• Stability and Durability
Why SOA?
• SOA's tenets are about reducing coupling.
Why SOA? [cont.]
• Coupling:
 • Afferent, efferent
 • Temporal
 • Spatial
 • Platform
n-tier architecture
In practice
In practice

• Domain decomposition
• Definition of components boundaries
• Using messaging and pub/sub
Publish Subscribe
    [pub/sub]
Publish Subscribe
    [pub/sub]
In practice [cont.]
•   Following principles (best thinking):
    •   Explicit intentions [naming, context]
    •   Single Responsibility
    •   Command Query Separation
    •   Drive your design and decision making to
        address all aspects of coupling
    •   Backwards compatibility
Why NServiceBus?

• .Net Solution
• Distributed bus (not a broker)
• Messaging pub/sub (asynchronous)
• Durable and Transactional (if you want)
• Sagas
Why NServiceBus? [cont.]
• A Message
 [Serializable]
 public class EventMessage : IMyEvent
 {
        public Guid EventId { get; set; }
        public DateTime? Time { get; set; }
 }

 public interface IMyEvent
 {
        Guid EventId { get; set; }
        DateTime? Time { get; set; }
        TimeSpan Duration { get; set; }
 }

 var m = new EventMessage();
 // Or:
 var m = Bus.CreateInstance<IMyEvent>();
Why NServiceBus? [cont.]
    • Handler
public IBus Bus { get; set; }

public class EventMessageHandler : IHandleMessages<EventMessage>
       {
             public void Handle(EventMessage message)
             {
                    // do stuff...
                    IMyEvent anotherEventMessage;

                    anotherEventMessage = Bus.CreateInstance<IMyEvent>();

                    anotherEventMessage = Guid.NewGuid();

                    anotherEventMessage = DateTime.Now.Second;

                    anotherEventMessage = TimeSpan.FromSeconds(99999D);

                    Bus.Publish(anotherEventMessage);
             }
      }
Service Examples
                                                          Place Order

                                  Sales
 Save status locally                                Save pricing locally


                                                     Subscribe to Product Pricing
Subscribe to Customer Status                            Updated
   Updated

                            Publish
                            Product Pricing Updated
                       Publish
   Customer            Customer Status Updated                          Marketing
     Care                        Publish Order Accepted
Why NServiceBus? [cont.]
         • Config
<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig,
NServiceBus.Core"/>
    <section name="MessageForwardingInCaseOfFaultConfig"
type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" />
  </configSections>
  <MessageForwardingInCaseOfFaultConfig ErrorQueue="error"/>
  <UnicastBusConfig ForwardReceivedMessagesTo="audit">
    <MessageEndpointMappings>
      <add Messages="MyMessages" Endpoint="MyServer"/>
    </MessageEndpointMappings>
  </UnicastBusConfig>
</configuration>
Why NServiceBus? [cont.]
• Integration
• Scalable
• Elegant programming model
• Developer productivity
• Used in the industry
A story about
performance
A story about
       performance
• The evolution
A story about
        performance
• Turning the lights on
A story about
       performance

• Performance and Load testing
• Fixing it
• How did NServiceBus make it better?
Summary

• SOA
• NServiceBus
• You can do it
Q&A
Thank You!
nservicebus.com
udidahan.com/blog
Sean Farmar
twitter: @farmar

Más contenido relacionado

La actualidad más candente

Productivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA TestersProductivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA Testers
WSO2
 
Lightweight Orchestration with WSO2 ESB
Lightweight Orchestration with WSO2 ESBLightweight Orchestration with WSO2 ESB
Lightweight Orchestration with WSO2 ESB
WSO2
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1
WSO2
 

La actualidad más candente (20)

Messaging in the cloud - Azure Service Bus
Messaging in the cloud - Azure Service BusMessaging in the cloud - Azure Service Bus
Messaging in the cloud - Azure Service Bus
 
Making communications across boundaries simple with NServiceBus
Making communications across boundaries simple with NServiceBusMaking communications across boundaries simple with NServiceBus
Making communications across boundaries simple with NServiceBus
 
Anypoint connector dev kit
Anypoint connector dev kitAnypoint connector dev kit
Anypoint connector dev kit
 
Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016Microservices with .Net - NDC Sydney, 2016
Microservices with .Net - NDC Sydney, 2016
 
Top Legacy Sins
Top Legacy SinsTop Legacy Sins
Top Legacy Sins
 
Windows Azure Service Bus
Windows Azure Service BusWindows Azure Service Bus
Windows Azure Service Bus
 
Productivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA TestersProductivity Acceleration Tools for SOA Testers
Productivity Acceleration Tools for SOA Testers
 
How lagom helps to build real world microservice systems
How lagom helps to build real world microservice systemsHow lagom helps to build real world microservice systems
How lagom helps to build real world microservice systems
 
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
 
Lightweight Orchestration with WSO2 ESB
Lightweight Orchestration with WSO2 ESBLightweight Orchestration with WSO2 ESB
Lightweight Orchestration with WSO2 ESB
 
Mule compatible technologies
Mule compatible technologiesMule compatible technologies
Mule compatible technologies
 
Mule technologies
Mule technologiesMule technologies
Mule technologies
 
Introduction to Windows Azure AppFabric Applications
Introduction to Windows Azure AppFabric ApplicationsIntroduction to Windows Azure AppFabric Applications
Introduction to Windows Azure AppFabric Applications
 
Weblogic - clustering failover, and load balancing
Weblogic - clustering failover, and load balancingWeblogic - clustering failover, and load balancing
Weblogic - clustering failover, and load balancing
 
Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1Better Enterprise Integration With the WSO2 ESB 4.5.1
Better Enterprise Integration With the WSO2 ESB 4.5.1
 
Azure Service Bus
Azure Service BusAzure Service Bus
Azure Service Bus
 
Camel Based Development Application
Camel Based Development ApplicationCamel Based Development Application
Camel Based Development Application
 
WSO2Con USA 2015: Building Web Apps with Reusable UI Components and Composition
WSO2Con USA 2015: Building Web Apps with Reusable UI Components and CompositionWSO2Con USA 2015: Building Web Apps with Reusable UI Components and Composition
WSO2Con USA 2015: Building Web Apps with Reusable UI Components and Composition
 
Cloud Development with Camel and Amazon Web Services
Cloud Development with Camel and Amazon Web ServicesCloud Development with Camel and Amazon Web Services
Cloud Development with Camel and Amazon Web Services
 
WCF tutorial
WCF tutorialWCF tutorial
WCF tutorial
 

Similar a SOA with NServiceBus 20130124

Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development
Mahmoud Hamed Mahmoud
 
Jasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-casJasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-cas
ellentuck
 
Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features
WSO2
 

Similar a SOA with NServiceBus 20130124 (20)

Learn Cloud-Native .NET: Core Configuration Fundamentals with Steeltoe
Learn Cloud-Native .NET: Core Configuration Fundamentals with SteeltoeLearn Cloud-Native .NET: Core Configuration Fundamentals with Steeltoe
Learn Cloud-Native .NET: Core Configuration Fundamentals with Steeltoe
 
Making WCF Simple
Making WCF SimpleMaking WCF Simple
Making WCF Simple
 
GWT MVP Case Study
GWT MVP Case StudyGWT MVP Case Study
GWT MVP Case Study
 
Google Web Toolkits
Google Web ToolkitsGoogle Web Toolkits
Google Web Toolkits
 
Academy PRO: Push notifications. Denis Beketsky
Academy PRO: Push notifications. Denis BeketskyAcademy PRO: Push notifications. Denis Beketsky
Academy PRO: Push notifications. Denis Beketsky
 
JS Fest 2018. Илья Иванов. Введение в React-Native
JS Fest 2018. Илья Иванов. Введение в React-NativeJS Fest 2018. Илья Иванов. Введение в React-Native
JS Fest 2018. Илья Иванов. Введение в React-Native
 
Beyond simple benchmarks—a practical guide to optimizing code
Beyond simple benchmarks—a practical guide to optimizing code Beyond simple benchmarks—a practical guide to optimizing code
Beyond simple benchmarks—a practical guide to optimizing code
 
Xamarin & MvvmCross in depth
Xamarin & MvvmCross in depthXamarin & MvvmCross in depth
Xamarin & MvvmCross in depth
 
O365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis Jugo
O365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis JugoO365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis Jugo
O365Con19 - Developing Timerjob and Eventhandler Equivalents - Adis Jugo
 
Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development Windows Store app using XAML and C#: Enterprise Product Development
Windows Store app using XAML and C#: Enterprise Product Development
 
Testing your application on Google App Engine
Testing your application on Google App EngineTesting your application on Google App Engine
Testing your application on Google App Engine
 
Testing Your Application On Google App Engine
Testing Your Application On Google App EngineTesting Your Application On Google App Engine
Testing Your Application On Google App Engine
 
Disaster Recovery Planning using Azure Site Recovery
Disaster Recovery Planning using Azure Site RecoveryDisaster Recovery Planning using Azure Site Recovery
Disaster Recovery Planning using Azure Site Recovery
 
Jasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-casJasigsakai12 columbia-customizes-cas
Jasigsakai12 columbia-customizes-cas
 
ConFoo 2015 - Supporting Multi-tenancy Applications with Java EE
ConFoo 2015 - Supporting Multi-tenancy Applications with Java EEConFoo 2015 - Supporting Multi-tenancy Applications with Java EE
ConFoo 2015 - Supporting Multi-tenancy Applications with Java EE
 
Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features Complex Event Processor 3.0.0 - An overview of upcoming features
Complex Event Processor 3.0.0 - An overview of upcoming features
 
Clean Architecture @ Taxibeat
Clean Architecture @ TaxibeatClean Architecture @ Taxibeat
Clean Architecture @ Taxibeat
 
Automating the Entire PostgreSQL Lifecycle
Automating the Entire PostgreSQL Lifecycle Automating the Entire PostgreSQL Lifecycle
Automating the Entire PostgreSQL Lifecycle
 
Spring in the Cloud - using Spring with Cloud Foundry
Spring in the Cloud - using Spring with Cloud FoundrySpring in the Cloud - using Spring with Cloud Foundry
Spring in the Cloud - using Spring with Cloud Foundry
 
Firebase overview
Firebase overviewFirebase overview
Firebase overview
 

Más de Sean Farmar

Why soa DDD South West 6
Why soa DDD South West 6Why soa DDD South West 6
Why soa DDD South West 6
Sean Farmar
 

Más de Sean Farmar (10)

Sean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptx
Sean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptxSean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptx
Sean Farmar SOA Lessons Learnt DDD North 20221203-pub.pptx
 
DevOps and Microservices Better Together 20190117 DevOps Underground London
DevOps and Microservices Better Together 20190117 DevOps Underground LondonDevOps and Microservices Better Together 20190117 DevOps Underground London
DevOps and Microservices Better Together 20190117 DevOps Underground London
 
Successfully Decomposing Your Monolith 20190515 DotNext St. Petersburg
Successfully Decomposing Your Monolith 20190515 DotNext St. PetersburgSuccessfully Decomposing Your Monolith 20190515 DotNext St. Petersburg
Successfully Decomposing Your Monolith 20190515 DotNext St. Petersburg
 
How Can Monitoring Save Your Bacon - build stuff 2018
How Can Monitoring Save Your Bacon - build stuff 2018How Can Monitoring Save Your Bacon - build stuff 2018
How Can Monitoring Save Your Bacon - build stuff 2018
 
Monitoring microservices lightning ddd north 20171014
Monitoring microservices lightning ddd north 20171014Monitoring microservices lightning ddd north 20171014
Monitoring microservices lightning ddd north 20171014
 
Why Service Oriented Architecture DDD North 20151024
Why Service Oriented Architecture DDD North 20151024Why Service Oriented Architecture DDD North 20151024
Why Service Oriented Architecture DDD North 20151024
 
Why soa DDD South West 6
Why soa DDD South West 6Why soa DDD South West 6
Why soa DDD South West 6
 
Why SOA Web Summit Dublin 2014
Why SOA Web Summit Dublin 2014 Why SOA Web Summit Dublin 2014
Why SOA Web Summit Dublin 2014
 
Turning the light on
Turning the light onTurning the light on
Turning the light on
 
What's new in NServiceBus 4.0 20130718
What's new in NServiceBus 4.0 20130718What's new in NServiceBus 4.0 20130718
What's new in NServiceBus 4.0 20130718
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

SOA with NServiceBus 20130124

  • 1. SOA With NServiceBus Sean Farmar
  • 2. What is the problem we are trying to solve? • Scale • Growth • Stability and Durability
  • 3. Why SOA? • SOA's tenets are about reducing coupling.
  • 4. Why SOA? [cont.] • Coupling: • Afferent, efferent • Temporal • Spatial • Platform
  • 7. In practice • Domain decomposition • Definition of components boundaries • Using messaging and pub/sub
  • 8. Publish Subscribe [pub/sub]
  • 9. Publish Subscribe [pub/sub]
  • 10. In practice [cont.] • Following principles (best thinking): • Explicit intentions [naming, context] • Single Responsibility • Command Query Separation • Drive your design and decision making to address all aspects of coupling • Backwards compatibility
  • 11. Why NServiceBus? • .Net Solution • Distributed bus (not a broker) • Messaging pub/sub (asynchronous) • Durable and Transactional (if you want) • Sagas
  • 12. Why NServiceBus? [cont.] • A Message [Serializable] public class EventMessage : IMyEvent { public Guid EventId { get; set; } public DateTime? Time { get; set; } } public interface IMyEvent { Guid EventId { get; set; } DateTime? Time { get; set; } TimeSpan Duration { get; set; } } var m = new EventMessage(); // Or: var m = Bus.CreateInstance<IMyEvent>();
  • 13. Why NServiceBus? [cont.] • Handler public IBus Bus { get; set; } public class EventMessageHandler : IHandleMessages<EventMessage> { public void Handle(EventMessage message) { // do stuff... IMyEvent anotherEventMessage; anotherEventMessage = Bus.CreateInstance<IMyEvent>(); anotherEventMessage = Guid.NewGuid(); anotherEventMessage = DateTime.Now.Second; anotherEventMessage = TimeSpan.FromSeconds(99999D); Bus.Publish(anotherEventMessage); } }
  • 14. Service Examples Place Order Sales Save status locally Save pricing locally Subscribe to Product Pricing Subscribe to Customer Status Updated Updated Publish Product Pricing Updated Publish Customer Customer Status Updated Marketing Care Publish Order Accepted
  • 15. Why NServiceBus? [cont.] • Config <?xml version="1.0"?> <configuration> <configSections> <section name="UnicastBusConfig" type="NServiceBus.Config.UnicastBusConfig, NServiceBus.Core"/> <section name="MessageForwardingInCaseOfFaultConfig" type="NServiceBus.Config.MessageForwardingInCaseOfFaultConfig, NServiceBus.Core" /> </configSections> <MessageForwardingInCaseOfFaultConfig ErrorQueue="error"/> <UnicastBusConfig ForwardReceivedMessagesTo="audit"> <MessageEndpointMappings> <add Messages="MyMessages" Endpoint="MyServer"/> </MessageEndpointMappings> </UnicastBusConfig> </configuration>
  • 16. Why NServiceBus? [cont.] • Integration • Scalable • Elegant programming model • Developer productivity • Used in the industry
  • 17.
  • 19. A story about performance • The evolution
  • 20. A story about performance • Turning the lights on
  • 21. A story about performance • Performance and Load testing • Fixing it • How did NServiceBus make it better?
  • 23. Q&A