Dennis van der Stelt is a software architect with almost 20 years of experience developing distributed systems. He provides coaching and training on topics like messaging concepts, architecture, and eventual consistency. His presentation covered key messaging concepts like how asynchronous messaging reduces coupling, patterns like sagas for long-running processes, and how eventual consistency is an acceptable approach for distributed systems.
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Building reliable applications with messaging
1. Dennis van der Stelt
and building better & more reliable systems
Dennis van der Stelt
Software Architect
http://dennis.bloggingabout.net/
dennis@bloggingabout.net
NServiceBus Community Champ
MESSAGING
@dvdstelt
#blaak
2. Dennis van der Stelt
YOUR PRESENTER
Dennis van der Stelt
http://dennis.bloggingabout.net/
Software Architect
Professional Services
Provides coaching & training
About Dennis
Innovative software architect
Almost 20 years of experience in development of
distributed systems. Has a continuous drive to
learn and improve knowledge in different
architectural styles, including quality in software
development. Highly motivated to share his
knowledge via articles, presentations and his
blog.
Awards
NServiceBus Champ
Typemock MVP
Certified Trainer
• Presentations
• Software & Architecture audits
• SOA & Microservices advice
• Unit Testing training
• NServiceBus training
12. Dennis van der Stelt
Separation of concerns
Flexibility & Reusability
Scalability
why all the layers?
13. Dennis van der Stelt
A monolithic design is characterized by such tight coupling
among modules that they really have no independent existence.
monolithic
14. Dennis van der Stelt
MONOLITHIC DESIGN
How does my clean code become a big ball of mud?
Database
15. Dennis van der Stelt
MONOLITHIC DESIGN
How does my clean code become a big ball of mud?
Database
42. Dennis van der Stelt
Don’t use asynchronous
messaging to query a datastore
for displaying purposes!
Everything has its place.
Messaging isn’t a silver bullet
you use for everything.
46. Dennis van der Stelt
CAP THEOREM
You can only pick 2
centralized
system
partition tolerantconsistencyavailability
47. Dennis van der Stelt
CAP THEOREM
You can only pick 2
centralized
system
partition tolerantconsistencyavailability
48. Dennis van der Stelt
CAP THEOREM
You can only pick 2
centralized
system
partition tolerantconsistencyavailability
distributed
system
partition tolerantconsistencyavailability
49. Dennis van der Stelt
CAP THEOREM
You can only pick 2
centralized
system
partition tolerantconsistencyavailability
distributed
system
partition tolerantconsistencyavailability
when there’s network partition,
which do you sacrifice?
60. Dennis van der Stelt
Eventual Consistency
your “enterprise” is already eventual consistent with reality
61. Dennis van der Stelt
Eventual Consistency
your “enterprise” is already eventual consistent with reality
62. Dennis van der Stelt
“Allow things to be inconsistent and find ways to
compensate for mistakes, versus trying to prevent
mistakes altogether.”
EVENTUAL CONSISTENCY
Eric Brewer
VP of Infrastructure at Google, Professor at UC Berkeley
82. Dennis van der Stelt
Asynchronous messaging helps achieve
decoupling at design- & runtime
There’s a lot to think about, designing an
eventual consistent distributed system.
Everyone needs to think about the CAP
Theorem, etc, with or without async messaging
Conclusion