Within a system, components communicate with each other through methods, services, etc. But what to do when a database connection times out, or the famous NullReference exception occurs? We log the error, but how do we offer call again to our system? Can we do this automated? During this session you’ll learn how to use messaging to solve the mentioned issues. How you can build more reliable, measurable and more robust software. You’ll also learn how to do this with both WCF and NServiceBus.
1. Dennis van der Stelt
and building reliable systems
Dennis van der Stelt
Software Architect
http://dennis.bloggingabout.net/
dennis@bloggingabout.net
NServiceBus Community Champ
MESSAGING
@dvdstelt
#lidnug
4. Dennis van der Stelt
Separation of concerns
Flexibility & Reusability
Scalability
why all the layers?
5. Dennis van der Stelt
A monolithic design is characterized by such tight coupling
among modules that they really have no independent existence.
monolithic
6. Dennis van der Stelt
COUPLING
Which layer has the
worst coupling?
26. Dennis van der Stelt
TEMPORAL COUPLING
Synchronouscommunication
Order accepted
DoesCompanyHaveCredit(companyId)
Place new order
Company
27. Dennis van der Stelt
TEMPORAL COUPLING
Asynchronous communication
Order accepted
DoesCompanyHaveCredit(companyId)
Place new order
GotData?
GotData?
GotData?
:)
28. Dennis van der Stelt
TEMPORAL COUPLING
Event Driven Communication
Order accepted
Publish CompanyHasCredit status
Place new order
Store data
30. Dennis van der Stelt
true loose coupling
retries / no data loss
smaller transactions
simplification of structure
improved manageability
31. Dennis van der Stelt
Warehouse Service
Sales Service
Product Service
Ordering
Products
Shipping
CQRS & Event Sourcing
CRUD
3 Tier
ARCHITECTURAL STYLES