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
Dennis van der Stelt
AGENDA
Dennis van der Stelt
Dennis van der Stelt
Separation of concerns
Flexibility & Reusability
Scalability
why all the layers?
Dennis van der Stelt
A monolithic design is characterized by such tight coupling
among modules that they really have no independent existence.
monolithic
Dennis van der Stelt
COUPLING
Which layer has the
worst coupling?
Dennis van der Stelt
Dennis van der Stelt
MONOLITHIC DESIGN
How does my clean code become a big ball of mud?
Database
Dennis van der Stelt
MONOLITHIC DESIGN
How does my clean code become a big ball of mud?
Database
reduce
coupling
Dennis van der Stelt
SpatialTemporalPlatform
coupling aspects
Dennis van der Stelt
PLATFORM
Also known as ‘interoperability’
http, json, xml, xsd, etc…
Dennis van der Stelt
TEMPORAL
Store Front End Shipping Service
Dennis van der Stelt
TEMPORAL
Store Front End Shipping ServiceShipping Service
Dennis van der Stelt
TEMPORAL
Store Front End Shipping ServiceOrder Queue
Dennis van der Stelt
TEMPORAL
Store Front End Shipping ServiceOrder Queue
Dennis van der Stelt
TEMPORAL
Store Front End Shipping ServiceOrder Queue
Dennis van der Stelt
SPATIAL
Dennis van der Stelt
SPATIAL .net
application
.net application
ShipOrder AssignTask
Dennis van der Stelt
Messaging
 Reduces spatial coupling
 XML/JSON for platform coupling
 Asynchronous for temporal coupling
demo
Messaging using WCF
Dennis van der Stelt
PERFORMANCE
RPC versus Messaging
what is the best pizza?
Dennis van der Stelt
TEMPORAL COUPLING
Synchronouscommunication
Order accepted
DoesCompanyHaveCredit(companyId)
Place new order
Company
Dennis van der Stelt
TEMPORAL COUPLING
Asynchronous communication
Order accepted
DoesCompanyHaveCredit(companyId)
Place new order
GotData?
GotData?
GotData?
:)
Dennis van der Stelt
TEMPORAL COUPLING
Event Driven Communication
Order accepted
Publish CompanyHasCredit status
Place new order
Store data
demo
NServiceBus Demo
Dennis van der Stelt
true loose coupling
retries / no data loss
smaller transactions
simplification of structure
improved manageability
Dennis van der Stelt
Warehouse Service
Sales Service
Product Service
Ordering
Products
Shipping
CQRS & Event Sourcing
CRUD
3 Tier
ARCHITECTURAL STYLES
messaging is business agility
Dennis van der Stelt
find me.
http://dennis.bloggingabout.net
dvdstelt@outlook.com

LIDNUG : Reliable applications with messaging

  • 1.
    Dennis van derStelt and building reliable systems Dennis van der Stelt Software Architect http://dennis.bloggingabout.net/ dennis@bloggingabout.net NServiceBus Community Champ MESSAGING @dvdstelt #lidnug
  • 2.
    Dennis van derStelt AGENDA
  • 3.
  • 4.
    Dennis van derStelt Separation of concerns Flexibility & Reusability Scalability why all the layers?
  • 5.
    Dennis van derStelt A monolithic design is characterized by such tight coupling among modules that they really have no independent existence. monolithic
  • 6.
    Dennis van derStelt COUPLING Which layer has the worst coupling?
  • 7.
  • 8.
    Dennis van derStelt MONOLITHIC DESIGN How does my clean code become a big ball of mud? Database
  • 9.
    Dennis van derStelt MONOLITHIC DESIGN How does my clean code become a big ball of mud? Database
  • 10.
  • 11.
    Dennis van derStelt SpatialTemporalPlatform coupling aspects
  • 12.
    Dennis van derStelt PLATFORM Also known as ‘interoperability’ http, json, xml, xsd, etc…
  • 13.
    Dennis van derStelt TEMPORAL Store Front End Shipping Service
  • 14.
    Dennis van derStelt TEMPORAL Store Front End Shipping ServiceShipping Service
  • 15.
    Dennis van derStelt TEMPORAL Store Front End Shipping ServiceOrder Queue
  • 16.
    Dennis van derStelt TEMPORAL Store Front End Shipping ServiceOrder Queue
  • 17.
    Dennis van derStelt TEMPORAL Store Front End Shipping ServiceOrder Queue
  • 18.
    Dennis van derStelt SPATIAL
  • 19.
    Dennis van derStelt SPATIAL .net application .net application ShipOrder AssignTask
  • 20.
    Dennis van derStelt Messaging  Reduces spatial coupling  XML/JSON for platform coupling  Asynchronous for temporal coupling
  • 21.
  • 22.
    Dennis van derStelt PERFORMANCE RPC versus Messaging
  • 25.
    what is thebest pizza?
  • 26.
    Dennis van derStelt TEMPORAL COUPLING Synchronouscommunication Order accepted DoesCompanyHaveCredit(companyId) Place new order Company
  • 27.
    Dennis van derStelt TEMPORAL COUPLING Asynchronous communication Order accepted DoesCompanyHaveCredit(companyId) Place new order GotData? GotData? GotData? :)
  • 28.
    Dennis van derStelt TEMPORAL COUPLING Event Driven Communication Order accepted Publish CompanyHasCredit status Place new order Store data
  • 29.
  • 30.
    Dennis van derStelt true loose coupling retries / no data loss smaller transactions simplification of structure improved manageability
  • 31.
    Dennis van derStelt Warehouse Service Sales Service Product Service Ordering Products Shipping CQRS & Event Sourcing CRUD 3 Tier ARCHITECTURAL STYLES
  • 32.
  • 33.
    Dennis van derStelt find me. http://dennis.bloggingabout.net dvdstelt@outlook.com