SDN Presentation
Als je werkt met mobile devices, UI frameworks zoals AngularJS, WebAPI, messaging, publish/subscribe, etc, dan bouw je een gedistribueerd systeem. Componenten binnen je systeem staan verspreid en communiceren asynchroon. Hier komen allerlei nieuwe uitdagingen bij kijken. In deze sessie kijken we naar enkele theorieën van gedistribueerde systemen om je aan het denken te zetten over de systemen die je bouwt. Aan bod komen o.a. het CAP Theorem, Eventual Consistency, Distributed Transactions, het ‘2 generals’ principe, idem potency, etc. en waarom dit belangrijk is voor jouw applicaties.
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Distributed Systems principles
1. Dennis van der Stelt
of distributed systems
Dennis van der Stelt
Software Architect
http://dennis.bloggingabout.net/
dennis@bloggingabout.net
NServiceBus Community Champ
PRINCIPLES
@dvdstelt
#sdnevent
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
Presentations
October 15th at Blaak Selectie / Betabit
Reliable systems using messaging
4. Dennis van der Stelt
A monolithic design is characterized by such tight coupling
among modules that they really have no independent existence.
monolithic
5. Dennis van der Stelt
MONOLITHIC DESIGN
How does my clean code become a big ball of mud?
Database
6. Dennis van der Stelt
MONOLITHIC DESIGN
How does my clean code become a big ball of mud?
Database
23. Dennis van der Stelt
CAP THEOREM
You can only pick 2
centralized
system
partition tolerantconsistencyavailability
24. Dennis van der Stelt
CAP THEOREM
You can only pick 2
centralized
system
partition tolerantconsistencyavailability
25. Dennis van der Stelt
CAP THEOREM
You can only pick 2
centralized
system
partition tolerantconsistencyavailability
distributed
system
partition tolerantconsistencyavailability
26. 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?
37. Dennis van der Stelt
Eventual Consistency
your “enterprise” is already eventual consistent with reality
38. Dennis van der Stelt
Eventual Consistency
your “enterprise” is already eventual consistent with reality
39. 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
44. Dennis van der Stelt
using (var scope = new TransactionScope()))
{
var queue = new
MessageQueue(@".Private$Customers");
var message = queue.Receive();
var con = new SqlConnection();
var cmd = new SqlCommand("update customers ...");
cmd.ExecuteNonQuery();
}
DISTRIBUTED TRANSACTIONS
Microsoft Distributed Transaction Coordinator (MSDTC)
Code
45. Dennis van der Stelt
using (var scope = new TransactionScope()))
{
var queue = new
MessageQueue(@".Private$Customers");
var message = queue.Receive();
var con = new SqlConnection();
var cmd = new SqlCommand("update customers ...");
cmd.ExecuteNonQuery();
}
DISTRIBUTED TRANSACTIONS
Microsoft Distributed Transaction Coordinator (MSDTC)
Code
MSDTC
50. Dennis van der Stelt
IDEM POTENCY
Solving the distributed transactionissues
Sender
{0C836F44-6587-416E-B97A-5615615600D5}
51. Dennis van der Stelt
IDEM POTENCY
Solving the distributed transactionissues
Sender
{0C836F44-6587-416E-B97A-5615615600D5}
52. Dennis van der Stelt
IDEM POTENCY
Solving the distributed transactionissues
Sender
Event
Subscriber
{5EDC4993-AB01-4F17-A238-71C4521F750F}
{0C836F44-6587-416E-B97A-5615615600D5}
53. Dennis van der Stelt
IDEM POTENCY
Solving the distributed transactionissues
Sender
Event
Subscriber
{5EDC4993-AB01-4F17-A238-71C4521F750F}
{0C836F44-6587-416E-B97A-5615615600D5}