SlideShare a Scribd company logo
1 of 61
Distributed
Architecture
Introduction to
What is Architecture?
A software architecture
is an abstract view of a
software system
distinct from the details
of implementation,
algorithms, and data
representation.
SEI @ Carnegie Mellon
Why Architecture Matters
Accidental Architecture
Every… system has an
architecture. While
some of these
architectures are
intentional, most
appear to be accidentalGrady Booch
Requirements
Analysis
Design
Code and Test
Integration
System Test
Waterfall Process
Requirements
Analysis
Design
Code and Test
Integration
System Test
Waterfall Process
Analysis
Paralysis
Massive
Integration
Design divorced
from reality
Manifesto for Agile Software Development
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left more.
Scrum: An agile Process
Architect Code
Techies crave Extremes
Functional requirements
What the system should do.
• Use cases, User stories, acceptance criteria
• Defines passing QA
• Day to day you focus on this
Nonfunctional requirements
What the system should be.
• Extremely expensive or impossible to “fix”
later on
• Defined passing Production
• Assumed by your customers and users
Nonfunctional Requirements
• Availability
• Stability
• Efficiency
• Reliability
• Maintainability
• Extensibility
• Fault Tolerance
• Security
• Capacity
• Latency
• Flexibility
• Scalability
Functional:
Passed QA
Beautiful site (in my opinion)
Easy to use
Nonfunctional:
Failed Production
Availability
Stability
Latency
Capacity
Throughput
ArchitectureThere is no best architecture
Pacemakers and Guided Missiles
The Flying Buttress
Patterns
Example: Layered Architecture
Three Tier Architecture
The classic 3 tier architecture
N-Tier Architecture
Because three tiers wasn’t enough!
N-Tier Architecture
SHAREPOINT
BIZTALK
SQL SERVER
Windows Server 2008
SMS
License
managementIIS
Questions about Architecture?
Distributed Architecture
Designs appropriate for
small brochureware
websites fail outrageously
when applied to thousand-
user, transactional,
distributed systems...
Michael T. Nygard
Key Constraints on Distributed Systems
• Stability
• Reliability and fault tolerance
• Consistency
• Capacity and Scalability
• Security
Scenario: Stability
You are the lead developer on a national health
care site that will register millions of users a week.
You are responsible for the signup process.
Your team must verify the identity of users with a
third party API. You call the service and the third
party system will return a boolean true if the
identity is valid or false otherwise.
private string Register(RegistrationInfo registrationInfo)
{
try
{
bool validIdentity = identityService.verifyIdentity(registrationInfo);
if (validIdentity)
{
database.save(registrationInfo);
return “register_success.htm";
}
return “register_failure.htm";
}
catch (Exception)
{
return "errorpage.htm";
}
}
6. Registered
Identity
Verification
Database
2. Verify
3. Verified
Site Server
Stability
4. Save User5. User Saved
1. Register
6. Registered
Identity
Verification
Database
2. Verify
3. Verified
Site Server
Unbalanced Capacities
4. Save User5. User Saved
1. Register
Identity
Verification
Blocked Threads
Site Server
Verify sally
Verify bob
joe verified
Verify joe
Verify sally
Verify joe
Verify bob
Verify bob
Verify bob
Verify bob
Verify bob
joe verified
Cascading Failures
Site Server
Site
Server
Site
Server
Site
Server
private string Register(RegistrationInfo registrationInfo)
{
try
{
identityService.Timeout = 10000;
bool validIdentity = identityService.verifyIdentity(registrationInfo);
if (verified)
{
db.save(registrationInfo);
return “register_success.htm";
}
return “register_failure.htm";
}
catch (Exception)
{
return "errorpage.htm";
}
}
Pattern 1: Timeouts
Identity
Verification
Pattern 1: Timeouts
Site Server
private void BeginRegister(RegistrationInfo registrationInfo, Function<string> callback)
{
try
{
identityService.EndIdentity += identityService_EndIdentity(callback)
identityService.BeginIdentity(registrationInfo);
}
catch (Exception)
{
callback("errorpage");
}
}
private void identityService_EndIdentity(bool success, Function<string> callback)
{
if (success)
{
callback("register_success.htm");
}
callback("register_failure.htm");
}
Pattern 2: Non-blocking I/O
Pattern 2: Non-blocking I/O
Identity
Verification
Site Server
For Users…
==
The site is stable. We’re still failing.
What’s the president recommending?
What might be happening
Thank you. We’ll email
you when you are
verified.
What might be happening
Identity
Verification
“The” Registration Process
When two principles
are pushing in opposite
directions, some
underlying assumption
is wrong. Often the
word the is the culpritUdi Dahan
Read this again
You are the lead developer on a national health
care site that will register millions of users a week.
You are responsible for the signup process.
Your team must verify the identity of users with a
third party API. You call the service and the third
party system will return a boolean true if the
identity is valid or false otherwise.
Pattern 3: Decoupling
Site Server
Thank you. We’ll email
you when you are
verified
Pending
Registration
Database
Pattern 3: Decoupling
Pending
Registration
Database
Verification
Application
Identity
Verification
Scenario 2: Reliability
You are the lead developer on a hospital’s
prescription filling service. Your RX wholesaler has
provided you with an HTTPS endpoint to integrate
with.
It is critical a prescription is not accidently
prescribed twice and that prescriptions are not
lost.
5. Success
RX Service
2. Fill RX
3. RX ID
Site Server
Reliability
1. Prescribe
Database
4. RX ID and Fill Info5. Record Updated
Invoking the Serviceprivate string Prescribe(PrescriptionInfo prescriptionInfo)
{
try
{
RxService rxService = new RxService();
int rxID = rxService.Prescribe(prescriptionInfo);
database.Save(rxId, prescriptionInfo);
return "success.htm";
}
catch (Exception)
{
return "errorpage.htm";
}
}
404 Timeout
RX Service
2. Prescribe
Site Server
What if the network goes down?
1. Prescribe
Invoking the Serviceprivate string Prescribe(PrescriptionInfo prescriptionInfo)
{
try
{
RxService rxService = new RxService();
int rxID = rxService.Prescribe(prescriptionInfo);
database.Save(rxId, prescriptionInfo);
return "success.htm";
}
catch (Exception)
{
return "errorpage.htm";
}
}
RX ServiceSite Server
Can I retry?
Prescribe
RX Service
Site Server
Prescribe
Got it, but I couldn’t get Back to you.
404 Timeout
RX ServiceSite Server
Pattern 1: Idempotency
Prescribe
RX Service
Site Server
Prescribe
Got it, but I couldn’t get Back to you.
404 Timeout
Sheesh… I already got it!
5. Success
RX Service
2. Fill RX
3. RX ID
Site Server
What if the database is down?
1. Prescribe
Database
4. Update Patient Record
Invoking the Serviceprivate string Prescribe(PrescriptionInfo prescriptionInfo)
{
try
{
RxService rxService = new RxService();
int rxID = rxService.Prescribe(prescriptionInfo);
database.Save(rxId, prescriptionInfo);
return "success.htm";
}
catch (Exception)
{
return "errorpage.htm";
}
}
Can We Guarantee this code?private string Prescribe(PrescriptionInfo prescriptionInfo)
{
try
{
RxService rxService = new RxService();
int rxID = rxService.Prescribe(prescriptionInfo);
database.Save(rxId, prescriptionInfo);
return "success.htm";
}
catch (Exception)
{
return "errorpage.htm";
}
}
Pattern 2: Transactional Queues
3. Pending
Site Server
Transactional Queue
1. Prescribe
Fill RX Message
Queue
Inserting into a Queue
private string Prescribe(PrescriptionInfo prescriptionInfo)
{
try
{
Queue.save(new RXPrescribeMessage(prescriptionInfo));
return "rxPending.htm";
}
catch (Exception)
{
return "errorpage.htm";
}
}
Transactional Queue
Queue
rxPrescribeMessage
RX Service
Fill rx
rx ID
Handler
rxDBUpdateMessage
Transactional Queue
Queue
rxDBUpdateMessage Save rx
Handler Database
Message Handlers
public void HandleRXPrescribeMessage(RXPrescribeMessage message)
{
var prescriptionInfo = message.prescriptionInfo;
RxService rxService = new RxService();
int rxID = rxService.Prescribe(prescriptionInfo);
Queue.save(new RXDBUpdateMessage(rxID, prescriptionInfo));
}
public void HandleDBUpdateMessage(RXDBUpdateMessage message)
{
var rxId = message.rxID;
var prescriptionInfo = message.prescriptionInfo
database.Update(message.rxID, message.prescriptionInfo)
}
Nygard, Michael T.
Cynical software expects bad
things to happen and is never
surprised when they do.
Cynical software doesn’t even
trust itself.. It refuses to get
too intimate with other
systems, because it could get
hurt.

More Related Content

What's hot

MongoDB World 2018: Evolving your Data Access with MongoDB Stitch
MongoDB World 2018: Evolving your Data Access with MongoDB StitchMongoDB World 2018: Evolving your Data Access with MongoDB Stitch
MongoDB World 2018: Evolving your Data Access with MongoDB StitchMongoDB
 
Autodiscover flow in an office 365 environment part 3#3 part 31#36
Autodiscover flow in an office 365 environment  part 3#3  part 31#36Autodiscover flow in an office 365 environment  part 3#3  part 31#36
Autodiscover flow in an office 365 environment part 3#3 part 31#36Eyal Doron
 
Foreman Single Sign-On Made Easy with Keycloak
Foreman Single Sign-On Made Easy with KeycloakForeman Single Sign-On Made Easy with Keycloak
Foreman Single Sign-On Made Easy with KeycloakNikhil Kathole
 
OReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the coreOReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the coreChris Richardson
 
Securing your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID ConnectSecuring your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID ConnectManish Pandit
 

What's hot (6)

MongoDB World 2018: Evolving your Data Access with MongoDB Stitch
MongoDB World 2018: Evolving your Data Access with MongoDB StitchMongoDB World 2018: Evolving your Data Access with MongoDB Stitch
MongoDB World 2018: Evolving your Data Access with MongoDB Stitch
 
Autodiscover flow in an office 365 environment part 3#3 part 31#36
Autodiscover flow in an office 365 environment  part 3#3  part 31#36Autodiscover flow in an office 365 environment  part 3#3  part 31#36
Autodiscover flow in an office 365 environment part 3#3 part 31#36
 
Foreman Single Sign-On Made Easy with Keycloak
Foreman Single Sign-On Made Easy with KeycloakForeman Single Sign-On Made Easy with Keycloak
Foreman Single Sign-On Made Easy with Keycloak
 
OReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the coreOReilly SACON2018 - Events on the outside, on the inside, and at the core
OReilly SACON2018 - Events on the outside, on the inside, and at the core
 
Securing your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID ConnectSecuring your APIs with OAuth, OpenID, and OpenID Connect
Securing your APIs with OAuth, OpenID, and OpenID Connect
 
OpenID Connect Federation
OpenID Connect FederationOpenID Connect Federation
OpenID Connect Federation
 

Viewers also liked

Unit 1 architecture of distributed systems
Unit 1 architecture of distributed systemsUnit 1 architecture of distributed systems
Unit 1 architecture of distributed systemskaran2190
 
Migrate from database file system to asm
Migrate from database file system to asmMigrate from database file system to asm
Migrate from database file system to asmSurender Martha
 
A Distributed Architecture System for Recognizing Textual Entailment
A Distributed Architecture System for Recognizing Textual EntailmentA Distributed Architecture System for Recognizing Textual Entailment
A Distributed Architecture System for Recognizing Textual EntailmentFaculty of Computer Science
 
Database File System
Database File SystemDatabase File System
Database File SystemAnas R.
 
Scalable Distributed System Architecture
Scalable Distributed System ArchitectureScalable Distributed System Architecture
Scalable Distributed System ArchitectureNicholas van de Walle
 
Distributed Database Management System(DDMS)
Distributed Database Management System(DDMS)Distributed Database Management System(DDMS)
Distributed Database Management System(DDMS)mobeen.laws
 
Multimedia database
Multimedia databaseMultimedia database
Multimedia databaseRashmi Agale
 
Lecture 11 - distributed database
Lecture 11 - distributed databaseLecture 11 - distributed database
Lecture 11 - distributed databaseHoneySah
 
Lecture 3 multimedia databases
Lecture 3   multimedia databasesLecture 3   multimedia databases
Lecture 3 multimedia databasesRanjana N Jinde
 
MultiMedia dbms
MultiMedia dbmsMultiMedia dbms
MultiMedia dbmsTech_MX
 
Distributed database management systems
Distributed database management systemsDistributed database management systems
Distributed database management systemsDhani Ahmad
 
Multimedia Database
Multimedia Database Multimedia Database
Multimedia Database Avnish Patel
 
Lecture 10 distributed database management system
Lecture 10   distributed database management systemLecture 10   distributed database management system
Lecture 10 distributed database management systememailharmeet
 
Distributed Database System
Distributed Database SystemDistributed Database System
Distributed Database SystemSulemang
 
Presentation on Database management system
Presentation on Database management systemPresentation on Database management system
Presentation on Database management systemPrerana Bhattarai
 

Viewers also liked (18)

Unit 1 architecture of distributed systems
Unit 1 architecture of distributed systemsUnit 1 architecture of distributed systems
Unit 1 architecture of distributed systems
 
Migrate from database file system to asm
Migrate from database file system to asmMigrate from database file system to asm
Migrate from database file system to asm
 
A Distributed Architecture System for Recognizing Textual Entailment
A Distributed Architecture System for Recognizing Textual EntailmentA Distributed Architecture System for Recognizing Textual Entailment
A Distributed Architecture System for Recognizing Textual Entailment
 
Database File System
Database File SystemDatabase File System
Database File System
 
Scalable Distributed System Architecture
Scalable Distributed System ArchitectureScalable Distributed System Architecture
Scalable Distributed System Architecture
 
Multimedia db system
Multimedia db systemMultimedia db system
Multimedia db system
 
Distributed Database Management System(DDMS)
Distributed Database Management System(DDMS)Distributed Database Management System(DDMS)
Distributed Database Management System(DDMS)
 
Multimedia database
Multimedia databaseMultimedia database
Multimedia database
 
Multimedia Database
Multimedia DatabaseMultimedia Database
Multimedia Database
 
Multimedia database
Multimedia databaseMultimedia database
Multimedia database
 
Lecture 11 - distributed database
Lecture 11 - distributed databaseLecture 11 - distributed database
Lecture 11 - distributed database
 
Lecture 3 multimedia databases
Lecture 3   multimedia databasesLecture 3   multimedia databases
Lecture 3 multimedia databases
 
MultiMedia dbms
MultiMedia dbmsMultiMedia dbms
MultiMedia dbms
 
Distributed database management systems
Distributed database management systemsDistributed database management systems
Distributed database management systems
 
Multimedia Database
Multimedia Database Multimedia Database
Multimedia Database
 
Lecture 10 distributed database management system
Lecture 10   distributed database management systemLecture 10   distributed database management system
Lecture 10 distributed database management system
 
Distributed Database System
Distributed Database SystemDistributed Database System
Distributed Database System
 
Presentation on Database management system
Presentation on Database management systemPresentation on Database management system
Presentation on Database management system
 

Similar to Introduction to Distributed Architecture

MongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day OneMongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day OneMongoDB
 
[2019.1] 하이퍼레저 패브릭 v1.3, v1.4 새로운 기능
[2019.1] 하이퍼레저 패브릭 v1.3, v1.4 새로운 기능[2019.1] 하이퍼레저 패브릭 v1.3, v1.4 새로운 기능
[2019.1] 하이퍼레저 패브릭 v1.3, v1.4 새로운 기능Hyperledger Korea User Group
 
Sviluppare Applicazioni Real Time con AppSync Deck.pptx
Sviluppare Applicazioni Real Time con AppSync Deck.pptxSviluppare Applicazioni Real Time con AppSync Deck.pptx
Sviluppare Applicazioni Real Time con AppSync Deck.pptxAmazon Web Services
 
Code your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard LearnCode your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard LearnDan Rinzel
 
Web Services Testing
Web Services TestingWeb Services Testing
Web Services TestingDataArt
 
Application Security Workshop
Application Security Workshop Application Security Workshop
Application Security Workshop Priyanka Aash
 
Integrating Force.com with Heroku
Integrating Force.com with HerokuIntegrating Force.com with Heroku
Integrating Force.com with HerokuPat Patterson
 
Paul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & syncPaul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & syncmdevtalk
 
Salesforce1 Platform for programmers
Salesforce1 Platform for programmersSalesforce1 Platform for programmers
Salesforce1 Platform for programmersSalesforce Developers
 
Event-Based API Patterns and Practices
Event-Based API Patterns and PracticesEvent-Based API Patterns and Practices
Event-Based API Patterns and PracticesLaunchAny
 
Microservices in Node.js: Patterns and techniques
Microservices in Node.js: Patterns and techniquesMicroservices in Node.js: Patterns and techniques
Microservices in Node.js: Patterns and techniquesThe Software House
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습Oracle Korea
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing Inho Kang
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Vinícius Carvalho
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...VMware Tanzu
 

Similar to Introduction to Distributed Architecture (20)

MongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day OneMongoDB World 2019: Securing Application Data from Day One
MongoDB World 2019: Securing Application Data from Day One
 
ELEVATE Paris
ELEVATE ParisELEVATE Paris
ELEVATE Paris
 
[2019.1] 하이퍼레저 패브릭 v1.3, v1.4 새로운 기능
[2019.1] 하이퍼레저 패브릭 v1.3, v1.4 새로운 기능[2019.1] 하이퍼레저 패브릭 v1.3, v1.4 새로운 기능
[2019.1] 하이퍼레저 패브릭 v1.3, v1.4 새로운 기능
 
Sviluppare Applicazioni Real Time con AppSync Deck.pptx
Sviluppare Applicazioni Real Time con AppSync Deck.pptxSviluppare Applicazioni Real Time con AppSync Deck.pptx
Sviluppare Applicazioni Real Time con AppSync Deck.pptx
 
Salesforce and sap integration
Salesforce and sap integrationSalesforce and sap integration
Salesforce and sap integration
 
Code your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard LearnCode your Own: Authentication Provider for Blackboard Learn
Code your Own: Authentication Provider for Blackboard Learn
 
Web Services Testing
Web Services TestingWeb Services Testing
Web Services Testing
 
Bh Win 03 Rileybollefer
Bh Win 03 RileybolleferBh Win 03 Rileybollefer
Bh Win 03 Rileybollefer
 
Application Security Workshop
Application Security Workshop Application Security Workshop
Application Security Workshop
 
Switch to Backend 2023
Switch to Backend 2023Switch to Backend 2023
Switch to Backend 2023
 
Integrating Force.com with Heroku
Integrating Force.com with HerokuIntegrating Force.com with Heroku
Integrating Force.com with Heroku
 
Paul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & syncPaul Lammertsma: Account manager & sync
Paul Lammertsma: Account manager & sync
 
Salesforce1 Platform for programmers
Salesforce1 Platform for programmersSalesforce1 Platform for programmers
Salesforce1 Platform for programmers
 
Event-Based API Patterns and Practices
Event-Based API Patterns and PracticesEvent-Based API Patterns and Practices
Event-Based API Patterns and Practices
 
ATD11_WebAPISecurity
ATD11_WebAPISecurityATD11_WebAPISecurity
ATD11_WebAPISecurity
 
Microservices in Node.js: Patterns and techniques
Microservices in Node.js: Patterns and techniquesMicroservices in Node.js: Patterns and techniques
Microservices in Node.js: Patterns and techniques
 
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
[Hands-on] CQRS(Command Query Responsibility Segregation) 와 Event Sourcing 패턴 실습
 
CQRS and Event Sourcing
CQRS and Event Sourcing CQRS and Event Sourcing
CQRS and Event Sourcing
 
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014Recipes for a successful production cloudfoundry deployment - CF Summit 2014
Recipes for a successful production cloudfoundry deployment - CF Summit 2014
 
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
Cloud Foundry Cookbook: Recipes for a Successful Cloud Foundry Deployment in ...
 

Recently uploaded

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

Introduction to Distributed Architecture

Editor's Notes

  1. Correct but lacking. Why would I need a view distinct form the code? Is architecture just busy work?
  2. Of the things you will learn at this conference, I believe this will be the most important stuff for your long term career.
  3. What causes accidental architecture? - Misusing agile methods - Bad estimation. If you told your customer we’re not going to do architecture because we think you don’t want us estimating for it… - The expectation that a product will provide an architecture.
  4. Often called the “ilities” Your customers and users don’t know they need to tell you these things. Assumptions made by your customer: - The site is going to be performant. - The site can handle an infinite number of users. - The site will be secure - The site will maintain itself. We already paid for it – look the project is done. You don’t need to continue working on this thing do you? We spent millions! - The site will be stable. Why would the site ever need to be down? 5 9’s. - There shouldn’t be runtime errors. We went through the entire QA process! - Why would the number of users on a site even matter? Look at Google! It’s just a search box! Ultimately defined by physics (The twelve fallacies of distributed computing) - Bandwidth - Moore’s law - Speed of the light - spinning rust What about the cloud? - You too can spend an infinite amount of money in the cloud!
  5. The constraints and requirements very substantially for each system. Beware if someone approaches you in a back alley and says “pssst…” wanna buy an architecture
  6. I better choose a memory efficient architectures for the Pacemaker. Do I care if I have an efficient garbage collection if my computer is destroyed upon hitting its target?
  7. In physical architecture we see certain patterns such as the flying buttress here. Remediates lateral forces Allows us to build less massively and have stained glass windows
  8. Let’s think instead of architectural patterns.
  9. Each architectural pattern will have pros and cons Who can think of something good about this pattern? 1 Understand a single layer without understanding the whole 2 Substitute layers so long as their interfaces don’t change 3 Reduce coupling
  10. The classic three tier enterprise architecture is an example of a layered architecture.
  11. Too much of a good thing? And N-Tier architecture is also a layered architecture
  12. The enterprise is and always has been starved for good architecture. Beware vendors promoting architectures. They surely have some products to sell you.
  13. Therefore… When dealing with distributed systems we should choose patterns that mitigate constraints relevant to distributed systems.
  14. Unbalanced Capacity
  15. Your system is at the mercy of this third party system
  16. Their problems become our problems very quickly
  17. While not perfect, Timeouts are your first line of defense. Always use timeouts.
  18. What about Node.JS? With non blocking I/O where a response is required, we’ve really just kicked the can.
  19. RLY?
  20. Zen like patience required for this job.
  21. With non blocking I/O where a response is required, we’ve really just kicked the can.
  22. With non blocking I/O where a response is required, we’ve really just kicked the can.
  23. Unbalanced Capacity
  24. Unbalanced Capacity
  25. Unbalanced Capacity
  26. Unbalanced Capacity