SlideShare a Scribd company logo
"The Intersection of architecture and implementation", Mark Richards
“We need an architecture that can
scale to 500,000 users with an average
response of 600ms under full load”
“No problem. I’m on it.
business
sponsor
software
architect
“Here’s the
architecture for the
new system…”
software
architect
development
team
“What protocol should we
use between services?”
“That’s an
implementation detail…”
software
architect
development
team
“What persistence
framework should we
use?”
“That’s also an
implementation detail…”
software
architect
development
team
“What third-party libraries
and services should we
use?”
“Again, an implementation
detail. Architecture is my job—
implementation is yours.”
software
architect
development
team
"The Intersection of architecture and implementation", Mark Richards
"The Intersection of architecture and implementation", Mark Richards
isomorphism
isomorphism
isos (meaning “equal”) and morphe (meaning “form”, or “shape”)
how close does the shape of one thing match the
shape of the other thing?
how close does the shape of the architecture match the
shape of the problem domain?
architecture to domain isomorphism
microservices architecture
single purpose functions deployed as separate
units with each unit owning its own data
layered architecture
single deployment with functionality
grouped by technical categories
how close does the shape of the architecture match the
shape of the implementation?
architecture to implementation isomorphism
how close does the shape of the architecture match the
shape of the implementation?
architecture to implementation isomorphism
Case Studies
“We’re expecting anywhere from several
thousand to a million concurrent customers
on the new system.”
"The Intersection of architecture and implementation", Mark Richards
software
architect
item_id
current_inv
max_inv
min_inv
Inventory
get current inventory
Too slow, and the services are too
tightly coupled together
item_id
current_inv
max_inv
min_inv
Inventory
update-able
in-memory cache
containing inventory
amounts
read-only
replicated cache
containing
inventory amounts
item_id
current_inv
max_inv
min_inv
Inventory
Much faster, and the services are
decoupled and no longer dependent
on each other
500 mb
500 mb
1.0 GB
1000 mb
2500 mb
3.5 GB
1500 mb
2500 mb
4.0 GB
1500 mb
2500 mb
4.0 GB
https://myapp.com/placeOrder?id=27a54826s
Service Unavailable
HTTP ERROR 503. The service is unavailable
Microservices
Scalability
Elasticity
Performance
Coupling
Microservices
Scalability
Elasticity
X
Scalability
Elasticity
“We have a very tight budget and timeframe
for this new venture, and we’re expecting a
significant amount of change to the underlying
data structures as we learn more about this
new line of business. We need to move fast
when those changes happen.”
"The Intersection of architecture and implementation", Mark Richards
persistence layer component component component
presentation layer
business layer
component component component
component component component
services layer component component component
Layers of isolation
Separation of
concerns
Good change
control
software
architect
persistence layer component component component
presentation layer
business layer
component component component
component component component
services layer component component component
Better
performance
calling the
database
directly
It’s easier
having the
code and
SQL together
persistence layer component component component
presentation layer
business layer
component component component
component component component
services layer component component component
“Wait—here’s the best part—then they said ‘Sure, we’ll have those
database changes out to you right away.’ Ha ha ha ha ha ha ha…”
persistence layer component component component
presentation layer
business layer
component component component
component component component
services layer component component component
Isolation
Change control
Performance
Convenience
XIsolation
Change control
Isolation
Change control
How does implementation get out of alignment with
architecture, and how can we prevent it from happening?
communication
“The most effective way to deal with
constant database change is to leverage
closed layers in the architecture. I’ve got to
let the development team know…”
software
architect
development
team
Architecture Decision Records
to the Rescue!
short text file; 1-2 pages long, one file per decision
(markdown, textile, asciidoc, plaintext, etc.)
architecture decision records
short noun phrase describing the decision
proposed, accepted, superseded
description of the problem and alternative
solutions available (documentation)
justification (the “why”)
tradeoffs and impact of decision
if developers don't know why you made a
decision, they are less likely to agree with it
“Do this.”
software
architect
development
team
“No. We
don’t agree.”
Second Law of
Software Architecture
“Why is more important
than how”
?
justification (the “why”)
tradeoffs and impact of decision
architecture decision records
"The Intersection of architecture and implementation", Mark Richards
"The Intersection of architecture and implementation", Mark Richards
collaboration
availability
scalability
performance
software architecture software development
software architecture software development
availability
scalability
performance
software architecture
software development
leadership
mentoring
availability
scalability
performance
if developers are not involved in the
decision, they will be less likely to follow it
“Do this because it
performs better.”
software
architect
development
team
“Okay.”
“We found a
better way to do
this.”
later…
“We’re going to use request/reply
messaging between our services because
it’s faster and more scalable.”
software
architect
“Actually, we decided to use REST
because it’s just as fast and it scales better
than messaging. Look it up on Google or
ChatGPT.”
development
team
the problem…
“But…but…this is my
decision…and messaging is faster
and more scalable in our
environment…”
software
architect
“Whatever. We’re
moving forward with
REST.”
development
team
the problem…
software
architect development
team
the problem…
“I ran some benchmarks between
REST and messaging in our production
environment. Take a look at this…”
software
architect development
team
demonstration defeats discussion
response
times
user load
REST
Messaging
This is our
expected load
Our production environment
This is our response
time SLA
demonstration defeats discussion
“Based on this, I’m thinking we
should probably use messaging to
communicate between our microservices.
What do you think?”
software
architect
“We were thinking of using REST,
but you’re right—based on this data,
messaging is a better choice.”
development
team
demonstration defeats discussion
proposed, accepted, superseded
architecture decision records
Status: RFC by 22 June
…
indicates request for
comments status prior to
the decision being made
with an end date
Accepted
Proposed
Status: RFC by 22 June
architecture risk
storming
architecture risk
storming
Microservices
Microservices
architectural
governance
“I hope the development team is
complying with the architecture decisions I
communicated through the ADR”
software
architect
development
team
“With all these coding changes, I
hope the architecture is still meeting its
scalability requirements.”
software
architect
development
team
“An architectural fitness function provides
an objective integrity assessment of some
architectural characteristic(s).”
architecture fitness functions
start
if (c1)
f1() f2()
if (c2)
f3() f4()
end
7
6
5
4
3
2
1
8
7
6
5
4
3
2
1
nodes
edges
response
times
!
threshold or trend reached
track
architecture fitness functions
average
duration
time
concurrent
users testing elasticity and scalability
operational characteristics
response time trend analysis
instances starting
instances started
only the business and service layers can access
the persistence layer to control change
throughout the architecture
structural integrity
https://www.archunit.org/
https://github.com/TNG/ArchUnit
https://search.maven.org/search?
q=g:com.tngtech.archunit
structural integrity
https://github.com/TNG/ArchUnitNET
NuGet: ArchUnitNET
structural integrity
H
https://github.com/BenMorris/NetArchTest
structural integrity
H
https://www.hello2morrow.com/products/
sonargraph/architect9
structural integrity
@Test
public void presentation_layer_cannot_access_persistence_layer() {
noClasses().that().resideInAPackage("..presentation..")
.should().accessClassesThat().resideInAPackage("..persistence..")
.because("we have a closed-layered architecture to control changes " +
"made in the database and persistence layer. Persistence " +
"layer can only communicate with the business layer.")
.check(myClasses);
}
structural integrity
public Presentation_Layer_Cannot_Access_Persistence_Layer() {
var result = Types.InCurrentDomain()
.That()
.ResideInNamespace("Myapp.Presentation")
.ShouldNot()
.HaveDependencyOn("Myapp.Persistence")
.GetResult().IsSuccessful;
}
structural integrity
"The Intersection of architecture and implementation", Mark Richards
“Developers should never take
components designed by
architects as the last word.
Rather, the initial design should
be viewed as a first draft, where
implementation will reveal more
details and refinements.”
embrace continuous
architecture change
"The Intersection of architecture and implementation", Mark Richards

More Related Content

PPTX
Product manager vs Project manager
PPT
SW Architecture Monolithic to SOA
PDF
Agile Software Architecture
PPTX
DevLink - Architecting Modern Distributed Applications
PPTX
Software Architecture
PPTX
L02 Architecture
PPTX
DODN2009 - Architecting Modern Distributed Applications
PDF
Ten Advices for Architects
Product manager vs Project manager
SW Architecture Monolithic to SOA
Agile Software Architecture
DevLink - Architecting Modern Distributed Applications
Software Architecture
L02 Architecture
DODN2009 - Architecting Modern Distributed Applications
Ten Advices for Architects

Similar to "The Intersection of architecture and implementation", Mark Richards (20)

PDF
10 Hinweise für Architekten
PDF
L02 What is Software Architecture?
PDF
Introduction to SOFTWARE ARCHITECTURE
PDF
Micro services
PPTX
L01 Enterprise Application Architecture
PPT
Architectural Principles for Software + Services
PPTX
What are microservices
PDF
Modern times - architectures for a Next Generation of IT
PPTX
Software architecture in practice
PPTX
.NET Architecture for Enterprises
PDF
Software architecture, methodologies and design
PDF
ASAS 2014 - Simon Brown
PDF
Software Architecture - All you need to know
PDF
Crafting ColdFusion Applications like an Architect
PDF
Architectures and Alternatives
PDF
Why we got to Docker
PPT
Azure Serrvices Platform Pro Dev Partners
PPT
PDF
Software Architecture in an Agile World
PPTX
Microsoft Mimarisi
10 Hinweise für Architekten
L02 What is Software Architecture?
Introduction to SOFTWARE ARCHITECTURE
Micro services
L01 Enterprise Application Architecture
Architectural Principles for Software + Services
What are microservices
Modern times - architectures for a Next Generation of IT
Software architecture in practice
.NET Architecture for Enterprises
Software architecture, methodologies and design
ASAS 2014 - Simon Brown
Software Architecture - All you need to know
Crafting ColdFusion Applications like an Architect
Architectures and Alternatives
Why we got to Docker
Azure Serrvices Platform Pro Dev Partners
Software Architecture in an Agile World
Microsoft Mimarisi
Ad

More from Fwdays (20)

PDF
"Mastering UI Complexity: State Machines and Reactive Patterns at Grammarly",...
PDF
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
PPTX
"Computer Use Agents: From SFT to Classic RL", Maksym Shamrai
PPTX
"Як ми переписали Сільпо на Angular", Євген Русаков
PDF
"AI Transformation: Directions and Challenges", Pavlo Shaternik
PDF
"Validation and Observability of AI Agents", Oleksandr Denisyuk
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
PPTX
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
PPTX
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
PDF
"AI is already here. What will happen to your team (and your role) tomorrow?"...
PPTX
"Is it worth investing in AI in 2025?", Alexander Sharko
PDF
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
PDF
"Scaling in space and time with Temporal", Andriy Lupa.pdf
PDF
"Database isolation: how we deal with hundreds of direct connections to the d...
PDF
"Scaling in space and time with Temporal", Andriy Lupa .pdf
PPTX
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
PPTX
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
PPTX
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
PPTX
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...
"Mastering UI Complexity: State Machines and Reactive Patterns at Grammarly",...
"Effect, Fiber & Schema: tactical and technical characteristics of Effect.ts"...
"Computer Use Agents: From SFT to Classic RL", Maksym Shamrai
"Як ми переписали Сільпо на Angular", Євген Русаков
"AI Transformation: Directions and Challenges", Pavlo Shaternik
"Validation and Observability of AI Agents", Oleksandr Denisyuk
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
"Co-Authoring with a Machine: What I Learned from Writing a Book on Generativ...
"Human-AI Collaboration Models for Better Decisions, Faster Workflows, and Cr...
"AI is already here. What will happen to your team (and your role) tomorrow?"...
"Is it worth investing in AI in 2025?", Alexander Sharko
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Database isolation: how we deal with hundreds of direct connections to the d...
"Scaling in space and time with Temporal", Andriy Lupa .pdf
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...
Ad

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Empathic Computing: Creating Shared Understanding
PPT
Teaching material agriculture food technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Modernizing your data center with Dell and AMD
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Electronic commerce courselecture one. Pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
KodekX | Application Modernization Development
Diabetes mellitus diagnosis method based random forest with bat algorithm
NewMind AI Monthly Chronicles - July 2025
Encapsulation_ Review paper, used for researhc scholars
Empathic Computing: Creating Shared Understanding
Teaching material agriculture food technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Unlocking AI with Model Context Protocol (MCP)
Spectral efficient network and resource selection model in 5G networks
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Modernizing your data center with Dell and AMD
The Rise and Fall of 3GPP – Time for a Sabbatical?
The AUB Centre for AI in Media Proposal.docx
Mobile App Security Testing_ A Comprehensive Guide.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Electronic commerce courselecture one. Pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Per capita expenditure prediction using model stacking based on satellite ima...
Understanding_Digital_Forensics_Presentation.pptx
KodekX | Application Modernization Development

"The Intersection of architecture and implementation", Mark Richards