SlideShare a Scribd company logo
1 of 86
Download to read offline
Dennis van der Stelt
Change your Architecture
During deployment
Dennis van der Stelt @ Particular Software
Makers of NServiceBus
@dvdstelt
dennis.vanderstelt@particular.net
https://bloggingabout.net/
https://calendly/dvdstelt/
Dennis van der Stelt
Dennis van der Stelt
Four Three
LET’S TALK ABOUT PERSPECTIVE
Just because you see things in a way, doesn’tmean someone else is wrong.
Dennis van der Stelt
Dennis van der Stelt
London
Southampton
Plymouth
Liverpool
Manchester
Glasgow
Edinburgh
Aberdeen
WHISKY
(neat)
WHISKEY
(on the rocks)
BOURBON
SCOTCH
Dennis van der Stelt
Dennis van der Stelt
Everything we hear is an opinion,
not a fact. Everything we see is a
perspective, not the truth
Marcus Aurelius
Dennis van der Stelt
Services Microservices
LET’S TALK ABOUT PERSPECTIVE
Services aren’t necessarily microservices.But are microservices services?
Dennis van der Stelt
DIFFERENT VIEWS OF A SYSTEM
Which views can we distinguish in this diagram?
Dennis van der Stelt
C4 MODEL
Visualizing software architecture
Created by Simon Brown – https://c4model.com
Dennis van der Stelt
4+1 ARCHITECTURAL VIEW MODEL
Philippe Kruchten,1995
Scenarios
Logical
view
Development
view
Process
view
Physical
view
Dennis van der Stelt
4+1 ARCHITECTURAL VIEW MODEL
Philippe Kruchten,1995
Logical view
Explains how the system is structured
Usually contains services & components
Process view
Shows communication between services
Development view
Structure of the components & codebase
Usually inside an IDE, source-control repositories, etc.
Physical view
Shows how services are deployed
Dennis van der Stelt
4+1 VIEW MODEL – LOGICAL VIEW
This is an example. You probably shouldn’tdo services like this.
customer
service
order
service
inventory
service
product
service
email
service
Dennis van der Stelt
4+1 VIEW MODEL – PROCESS VIEW
Sequence diagrams are just a potential part of this view
inventory
service
product
service
order
service
some request
some request
some response
some response
Dennis van der Stelt
4+1 VIEW MODEL – PROCESS VIEW
When using NServiceBus, ServiceInsightcan provide great sequencediagrams on your message flow
Dennis van der Stelt
4+1 VIEW MODEL – DEVELOPMENT VIEW
More details about how projects are hosted, data storage, etc.
products inventory
orders
website
WebAPI WebAPI WebAPI
orders products inventory
Dennis van der Stelt
4+1 VIEW MODEL – DEVELOPMENT VIEW
Or decide to add a gateway
products inventory
orders
website
WebAPI
WebAPI
WebAPI
orders products inventory
Gateway
WebAPI
Dennis van der Stelt
4+1 VIEW MODEL – DEVELOPMENT VIEW
GitHub repositories and/or IDE projects
Dennis van der Stelt
4+1 VIEW MODEL – PHYSICAL VIEW
Remember, these are just examples
reversed
proxy
website
website
orders products inventory
inventory
container
products
container
orders
container
Dennis van der Stelt
4+1 VIEW MODEL
The same architecture, but different views
Logical View Physical View
reversed
proxy
website
website
orders products inventory
inventory
container
products
container
orders
container
customer
service
order
service
inventory
service
product
service
email
service
Dennis van der Stelt
Dennis van der Stelt
✓Maximum of 30 lines of code
✓Highly maintainable and testable
✓Loosely coupled
✓Database per microservice
✓Independently deployable
✓Owned by a small team
WHAT ARE MICROSERVICES
Some random list, copied from a random website
Dennis van der Stelt
✓Maximum of 30 lines of code
✓Highly maintainable and testable
✓Loosely coupled
✓Database per microservice
✓Independently deployable
✓Owned by a small team
WHAT ARE MICROSERVICES
Some random list, copied from a random website
Dennis van der Stelt
✓Maximum of 30 lines of code
✓Highly maintainable and testable
✓Loosely coupled
✓Database per microservice
✓Independently deployable
✓Owned by a small team
WHAT ARE MICROSERVICES
Some random list, copied from a random website
Dennis van der Stelt
✓Maximum of 30 lines of code
✓Highly maintainable and testable
✓Loosely coupled
✓Database per microservice
✓Independently deployable
✓Owned by a small team
WHAT ARE MICROSERVICES
Some random list, copied from a random website
Dennis van der Stelt
✓Maximum of 30 lines of code
✓Highly maintainable and testable
✓Loosely coupled
✓Database per microservice
✓Independently deployable
✓Owned by a small team
WHAT ARE MICROSERVICES
Some random list, copied from a random website
Dennis van der Stelt
✓Maximum of 30 lines of code
✓Highly maintainable and testable
✓Loosely coupled
✓Database per microservice
✓Independently deployable
✓Owned by a small team
WHAT ARE MICROSERVICES
Some random list, copied from a random website
Dennis van der Stelt
4+1 VIEW MODEL – SHARED DATABASE
Can we share a database among (micro)services?
orders products inventory
inventory
container
Logical View Physical View
products inventory
orders
orders products inventory
products
container
orders
container
website
container
Dennis van der Stelt
4+1 VIEW MODEL – SHARED DATABASE
Can we share a database among (micro)services?
orders
schema
products
schema
inventory
schema
inventory
container
Logical View Physical View
products inventory
orders
orders products inventory
products
container
orders
container
website
container
This is nothing more than a schema
Dennis van der Stelt
4+1 VIEW MODEL – SHARED DATABASE
Can we share a database among (micro)services?
inventory
container
Logical View Physical View
products inventory
orders
orders products inventory
products
container
orders
container
website
container
orders
schema
products
schema
inventory
schema
Dennis van der Stelt
data ownership
is not about how the
data is hosted
Dennis van der Stelt
SHARED DATABASE
Can we share a database among (micro)services?
inventory
products
orders
website
MyServerSqlExpress
Databases
Orders
Products
Inventory
Tables
Orders
OrderLines
Products
Products
BackOrder
Reserved
Tables
Tables
orders
schema
products
schema
inventory
schema
Dennis van der Stelt
SHARED DATABASE
Can we share a database among (micro)services?
inventory
products
orders
website
orders
schema
products
schema
inventory
schema
MyServerSqlExpress
Databases
RetailShop
Tables
Orders
OrderLines
Products
Products
BackOrder
Reserved
Dennis van der Stelt
✓Maximum of 30 lines of code
✓Highly maintainable and testable
✓Loosely coupled
✓Database per microservice
✓Independently deployable
✓Owned by a small team
WHAT ARE MICROSERVICES
Some random list, copied from a random website
Dennis van der Stelt
✓Maximum of 30 lines of code
✓Highly maintainable and testable
✓Loosely coupled
✓Database per microservice
✓Independently deployable
✓Owned by a small team
WHAT ARE MICROSERVICES
Some random list, copied from a random website
this is about data ownership
not about how we physically deploy
Dennis van der Stelt
4+1 VIEW MODEL – SHARED DATABASES
Something we definitely don’t want!
inventory
container
Logical View Physical View
products inventory
orders
orders products inventory
products
container
orders
container
website
container
orders products inventory
Dennis van der Stelt
4+1 VIEW MODEL – SHARED DATABASES
Something we definitely don’t want!
inventory
container
Logical View Physical View
products inventory
orders
orders products inventory
products
container
orders
container
website
container
orders products inventory
Dennis van der Stelt
Dennis van der Stelt
4+1 VIEW MODEL – SHARED DATA
Services querying each others’ data via RPC calls is much better
orders products inventory
inventory
Logical View Physical View
products inventory
orders
orders products inventory
products
orders
website
WebAPI WebAPI WebAPI
Dennis van der Stelt
4+1 VIEW MODEL – SHARED DATA
Services querying each others’ data via RPC calls is much better
orders products inventory
inventory
Logical View Physical View
products inventory
orders
orders products inventory
products
orders
website
WebAPI WebAPI WebAPI
Does the logical architecture
change if we do this?
Dennis van der Stelt
4+1 VIEW MODEL – SHARED DATA
Services querying each others’ data via RPC calls is much better </sarcasm>
orders products inventory
inventory
Logical View Physical View
products inventory
orders
orders products inventory
products
orders
website
WebAPI WebAPI WebAPI
Dennis van der Stelt
4+1 VIEW MODEL – SHARED DATA
Services querying each others’ data via RPC calls
orders products inventory
inventory
Bad, bad, baaaaaaaaaad solution The proposed alternative
products
orders
website
WebAPI WebAPI WebAPI
inventory
products
orders
website
orders products inventory
Dennis van der Stelt
can’t share data
via SQL API
but you can share data
via web API?
Dennis van der Stelt
how does that improve
data ownership
Dennis van der Stelt
https://go.particular.net/share-data
Dennis van der Stelt
https://go.particular.net/share-data
Dennis van der Stelt
✓Maximum of 30 lines of code
✓Highly maintainable and testable
✓Loosely coupled
✓Database per microservice
✓Independently deployable
✓Owned by a small team
WHAT ARE MICROSERVICES
Some random list, copied from a random website
Dennis van der Stelt
✓Maximum of 30 lines of code
✓Highly maintainable and testable
✓Loosely coupled
✓Database per microservice
✓Independently deployable
✓Owned by a small team
WHAT ARE MICROSERVICES
Some random list, copied from a random website
Dennis van der Stelt
INDEPENDENTLY DEPLOYABLE MICROSERVICES
Because the deployment makes them loosely coupled
Logical view Development view Physical view
Dennis van der Stelt
4+1 VIEW MODEL – DEPLOYING COMPONENTS
What we did with schemas, can we do that with more?
inventory
container
Logical View Physical View
products inventory
orders
orders products inventory
products
container
orders
container
website
container
orders
schema
products
schema
inventory
schema
Dennis van der Stelt
4+1 VIEW MODEL – DEPLOYING COMPONENTS
What we did with schemas, can we do that with more?
Logical View Physical View
products inventory
orders
orders products inventory
website
container
orders
schema
products
schema
inventory
schema
container
inventory
products
orders
Dennis van der Stelt
4+1 VIEW MODEL – DEPLOYING COMPONENTS
What we did with schemas, can we do that with more?
Logical View Physical View
products inventory
orders
orders products inventory
orders
schema
products
schema
inventory
schema
container
inventory
products
orders
website
Dennis van der Stelt
Dennis van der Stelt
Dennis van der Stelt
Dennis van der Stelt
Dennis van der Stelt
why did
amazon prime
change?
Dennis van der Stelt
Building evolvable software systems
is a strategy, not a religion. And
revisiting architectures with
an open mind is a must.
Dennis van der Stelt
Microservices were oversold as a
solution to everything … by vendors
who wanted to sell Kubernetes
Dennis van der Stelt
Dennis van der Stelt
there are no solutions
only trade-offs
Dennis van der Stelt
data ownership
in the
user interface
Dennis van der Stelt
DATA OWNERSHIP
Let’s dive deeper into data ownership in the user interface
orders products inventory
inventory
Logical View Physical View
products inventory
orders
orders products inventory
products
orders
website
WebAPI WebAPI WebAPI
Dennis van der Stelt
LOGICAL BOUNDARIES
Let’s set the stage… Names are removed as we should not focus on names, but rather the colors!
Logical View Physical View
API
API API
API
API API
website
Dennis van der Stelt
LOGICAL BOUNDARIES
Let’s set the stage… Names are removed as we should not focus on names, but rather the colors!
Logical View Physical View
API
API API
API
API API
website
logical boundaries
physical boundaries
Dennis van der Stelt
LOGICAL BOUNDARIES
Composing data from our back-end
Logical View Physical View
API
API API
API
API API
website
composition
Dennis van der Stelt
DATA COMPOSITION
Composing data from our back-end, to fill in details in our UI
Patterns of Enterprise Application Architecture
42 customer reviews
Add to cart
$42.00
save $13.37
Kindle Hardcover
This item ships to Haifa, Israel
Others
with more on the way
https://www.amazon.com/peaa-martin/
Product
Catalog
Inventory
Finance
Shipping
Marketing
Dennis van der Stelt
LOGICAL BOUNDARIES
If we’re composing theuser interface, let’s make that visiblein our physical view
Logical View Physical View
API
API API
API
API API
composition
Dennis van der Stelt
LOGICAL BOUNDARIES
If we’re composing theuser interface, let’s make that visiblein our physical view
Logical View Physical View
API
API API
API
API API
Dennis van der Stelt
LOGICAL BOUNDARIES
Let’s reflect it also in our logical view
Logical View Physical View
API
API API
API
API API
Dennis van der Stelt
Gateway
LOGICAL BOUNDARIES
For several reasons we want to add a gateway
Logical View Physical View
API
API API
API
API API
Gateway
Dennis van der Stelt
Gateway
LOGICAL BOUNDARIES
Having an all-knowing gateway breaks data ownership again
Logical View Physical View
API
API API
API
API API
massive coupling
Gateway
Dennis van der Stelt
DEMO
ViewModel
Composition Gateway
using ASP.NET
Dennis van der Stelt
Gateway
LOGICAL BOUNDARIES
Having an all-knowing gateway breaks data ownership again
Logical View Physical View
API
API API
API
API API
massive coupling
Gateway
Dennis van der Stelt
LOGICAL BOUNDARIES
The solution
Logical View Physical View
API
API API
API
API API
appender
appender appender
Composition Gateway
Composition Gateway
Dennis van der Stelt
LOGICAL BOUNDARIES
Data ownership means no data sharing. Can 4+1 view models help?
Logical View Physical View
API
API API
Composition Gateway
appender appender appender
API
API API
Composition Gateway
appender
appender appender
Dennis van der Stelt
LOGICAL BOUNDARIES
Data ownership means no data sharing. Can 4+1 view models help?
Logical View Physical View
API
API API
Composition Gateway
appender appender appender
API
API API
Composition Gateway
appender
appender appender
physical boundaries
logical boundaries
Dennis van der Stelt
LOGICAL VS PHYSICAL
Let’s stretch the example even further
Physical View
API
Composition Gateway
appender
Dennis van der Stelt
LOGICAL VS PHYSICAL
Let’s stretch the example even further
Physical View
API
Composition Gateway
appender
rpc request
Dennis van der Stelt
LOGICAL VS PHYSICAL
Let’s stretch the example even further
Physical View
API
Composition Gateway
appender
Composition Gateway
appender
API
rpc request
Dennis van der Stelt
LOGICAL VS PHYSICAL
Let’s stretch the example even further
Physical View
API
Composition Gateway
appender
Composition Gateway
appender
API
rpc request
rpc request
Dennis van der Stelt
LOGICAL VS PHYSICAL
Let’s stretch the example even further
Physical View
API
Composition Gateway
appender
Composition Gateway
appender
API
also deploy
connectionstring
rpc request
rpc request
Dennis van der Stelt
LOGICAL VS PHYSICAL
Does our logical view change?
Logical View Physical View
Composition Gateway
appender
API
appender
API
appender
API
API
API API
Composition Gateway
appender
appender appender
Dennis van der Stelt
CONCLUSION
What have we (hopefully) learned?
Different views of your system architecture allow you to
alter the structure from design to development to deployment
Logical boundary != physical boundary
Sharing data over services breaks data ownership and autonomy!
Want to learn more? I’d love to share more details if you contact me!
It’s “Whisky”, not “Whiskey” ;-)
Dennis van der Stelt
https://go.particular.net/change-architecture
for links to code & more information
Free Offer
30-Minute Consultation
Question
Dennis van der Stelt
Dennis van der Stelt
dennis.vanderstelt@particular.net
@dvdstelt
linkedin.com/in/dvdstelt/
calendly.com/dvdstelt
https://particular.net/
Solution Architect at Particular Software, makers of NServiceBus

More Related Content

Similar to Change your architecture during deployment

SAP Analytics Cloud: Haben Sie schon alle Datenquellen im Live-Zugriff?
SAP Analytics Cloud: Haben Sie schon alle Datenquellen im Live-Zugriff?SAP Analytics Cloud: Haben Sie schon alle Datenquellen im Live-Zugriff?
SAP Analytics Cloud: Haben Sie schon alle Datenquellen im Live-Zugriff?Denodo
 
Horses for Courses: Database Roundtable
Horses for Courses: Database RoundtableHorses for Courses: Database Roundtable
Horses for Courses: Database RoundtableEric Kavanagh
 
Denodo Partner Connect: Business Value Demo with Denodo Demo Lite
Denodo Partner Connect: Business Value Demo with Denodo Demo LiteDenodo Partner Connect: Business Value Demo with Denodo Demo Lite
Denodo Partner Connect: Business Value Demo with Denodo Demo LiteDenodo
 
Dr. Christian Kurze from Denodo, "Data Virtualization: Fulfilling the Promise...
Dr. Christian Kurze from Denodo, "Data Virtualization: Fulfilling the Promise...Dr. Christian Kurze from Denodo, "Data Virtualization: Fulfilling the Promise...
Dr. Christian Kurze from Denodo, "Data Virtualization: Fulfilling the Promise...Dataconomy Media
 
Denodo Design Studio: Modeling and Creation of Data Services
Denodo Design Studio: Modeling and Creation of Data ServicesDenodo Design Studio: Modeling and Creation of Data Services
Denodo Design Studio: Modeling and Creation of Data ServicesDenodo
 
Data Virtualization: From Zero to Hero
Data Virtualization: From Zero to HeroData Virtualization: From Zero to Hero
Data Virtualization: From Zero to HeroDenodo
 
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?brianlangbecker
 
Back to Basics: Data Integration and Virtualisation 101
Back to Basics: Data Integration and Virtualisation 101  Back to Basics: Data Integration and Virtualisation 101
Back to Basics: Data Integration and Virtualisation 101 TIBCO Jaspersoft
 
QuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarQuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarRTTS
 
Benefits of the Azure cloud
Benefits of the Azure cloudBenefits of the Azure cloud
Benefits of the Azure cloudJames Serra
 
FDMEE Can Do That?
FDMEE Can Do That?FDMEE Can Do That?
FDMEE Can Do That?Alithya
 
Accelerate Self-Service Analytics with Virtualization and Visualisation (Thai)
Accelerate Self-Service Analytics with Virtualization and Visualisation (Thai)Accelerate Self-Service Analytics with Virtualization and Visualisation (Thai)
Accelerate Self-Service Analytics with Virtualization and Visualisation (Thai)Denodo
 
State of Drupal keynote, DrupalCon New Orleans
State of Drupal keynote, DrupalCon New OrleansState of Drupal keynote, DrupalCon New Orleans
State of Drupal keynote, DrupalCon New OrleansDries Buytaert
 
The Evolution of Hosting and What's Next in Cloud Architecture - EE Conf 2018
The Evolution of Hosting and What's Next in Cloud Architecture - EE Conf 2018 The Evolution of Hosting and What's Next in Cloud Architecture - EE Conf 2018
The Evolution of Hosting and What's Next in Cloud Architecture - EE Conf 2018 Josh Ward
 
ShareChat’s Path to High-Performance NoSQL with ScyllaDB
ShareChat’s Path to High-Performance NoSQL with ScyllaDBShareChat’s Path to High-Performance NoSQL with ScyllaDB
ShareChat’s Path to High-Performance NoSQL with ScyllaDBScyllaDB
 
SQL Server 2017 Overview and Partner Opportunities
SQL Server 2017 Overview and Partner OpportunitiesSQL Server 2017 Overview and Partner Opportunities
SQL Server 2017 Overview and Partner OpportunitiesTravis Wright
 
TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?Haggai Philip Zagury
 
Enterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience ReportEnterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience ReportSheenBrisals
 

Similar to Change your architecture during deployment (20)

SAP Analytics Cloud: Haben Sie schon alle Datenquellen im Live-Zugriff?
SAP Analytics Cloud: Haben Sie schon alle Datenquellen im Live-Zugriff?SAP Analytics Cloud: Haben Sie schon alle Datenquellen im Live-Zugriff?
SAP Analytics Cloud: Haben Sie schon alle Datenquellen im Live-Zugriff?
 
Horses for Courses: Database Roundtable
Horses for Courses: Database RoundtableHorses for Courses: Database Roundtable
Horses for Courses: Database Roundtable
 
Denodo Partner Connect: Business Value Demo with Denodo Demo Lite
Denodo Partner Connect: Business Value Demo with Denodo Demo LiteDenodo Partner Connect: Business Value Demo with Denodo Demo Lite
Denodo Partner Connect: Business Value Demo with Denodo Demo Lite
 
Dr. Christian Kurze from Denodo, "Data Virtualization: Fulfilling the Promise...
Dr. Christian Kurze from Denodo, "Data Virtualization: Fulfilling the Promise...Dr. Christian Kurze from Denodo, "Data Virtualization: Fulfilling the Promise...
Dr. Christian Kurze from Denodo, "Data Virtualization: Fulfilling the Promise...
 
DWBASIC.ppt
DWBASIC.pptDWBASIC.ppt
DWBASIC.ppt
 
Denodo Design Studio: Modeling and Creation of Data Services
Denodo Design Studio: Modeling and Creation of Data ServicesDenodo Design Studio: Modeling and Creation of Data Services
Denodo Design Studio: Modeling and Creation of Data Services
 
Data Virtualization: From Zero to Hero
Data Virtualization: From Zero to HeroData Virtualization: From Zero to Hero
Data Virtualization: From Zero to Hero
 
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?
Why does Microsoft care about NoSQL, SQL and Polyglot Persistence?
 
Back to Basics: Data Integration and Virtualisation 101
Back to Basics: Data Integration and Virtualisation 101  Back to Basics: Data Integration and Virtualisation 101
Back to Basics: Data Integration and Virtualisation 101
 
QuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing WebinarQuerySurge Slide Deck for Big Data Testing Webinar
QuerySurge Slide Deck for Big Data Testing Webinar
 
Benefits of the Azure cloud
Benefits of the Azure cloudBenefits of the Azure cloud
Benefits of the Azure cloud
 
FDMEE Can Do That?
FDMEE Can Do That?FDMEE Can Do That?
FDMEE Can Do That?
 
Accelerate Self-Service Analytics with Virtualization and Visualisation (Thai)
Accelerate Self-Service Analytics with Virtualization and Visualisation (Thai)Accelerate Self-Service Analytics with Virtualization and Visualisation (Thai)
Accelerate Self-Service Analytics with Virtualization and Visualisation (Thai)
 
State of Drupal keynote, DrupalCon New Orleans
State of Drupal keynote, DrupalCon New OrleansState of Drupal keynote, DrupalCon New Orleans
State of Drupal keynote, DrupalCon New Orleans
 
The Evolution of Hosting and What's Next in Cloud Architecture - EE Conf 2018
The Evolution of Hosting and What's Next in Cloud Architecture - EE Conf 2018 The Evolution of Hosting and What's Next in Cloud Architecture - EE Conf 2018
The Evolution of Hosting and What's Next in Cloud Architecture - EE Conf 2018
 
ShareChat’s Path to High-Performance NoSQL with ScyllaDB
ShareChat’s Path to High-Performance NoSQL with ScyllaDBShareChat’s Path to High-Performance NoSQL with ScyllaDB
ShareChat’s Path to High-Performance NoSQL with ScyllaDB
 
SQL Server 2017 Overview and Partner Opportunities
SQL Server 2017 Overview and Partner OpportunitiesSQL Server 2017 Overview and Partner Opportunities
SQL Server 2017 Overview and Partner Opportunities
 
TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?TechRadarCon 2022 | Have you built your platform yet ?
TechRadarCon 2022 | Have you built your platform yet ?
 
Enterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience ReportEnterprise Serverless Adoption. An Experience Report
Enterprise Serverless Adoption. An Experience Report
 
Dwh basics datastage online training
Dwh basics datastage online trainingDwh basics datastage online training
Dwh basics datastage online training
 

More from Dennis van der Stelt

More from Dennis van der Stelt (18)

Dealing with eventual consistency
Dealing with eventual consistencyDealing with eventual consistency
Dealing with eventual consistency
 
Dealing with eventual consistency
Dealing with eventual consistencyDealing with eventual consistency
Dealing with eventual consistency
 
Death of the batch job
Death of the batch jobDeath of the batch job
Death of the batch job
 
Death of the batch job - NServiceBus Sagas
Death of the batch job - NServiceBus SagasDeath of the batch job - NServiceBus Sagas
Death of the batch job - NServiceBus Sagas
 
Distributed Systems Principles
Distributed Systems PrinciplesDistributed Systems Principles
Distributed Systems Principles
 
Building reliable applications with messaging
Building reliable applications with messagingBuilding reliable applications with messaging
Building reliable applications with messaging
 
Distributed Systems principles
Distributed Systems principlesDistributed Systems principles
Distributed Systems principles
 
Een andere kijk op Microservices
Een andere kijk op MicroservicesEen andere kijk op Microservices
Een andere kijk op Microservices
 
Duplicating data or replicating data in Micro Services
Duplicating data or replicating data in Micro ServicesDuplicating data or replicating data in Micro Services
Duplicating data or replicating data in Micro Services
 
LIDNUG : Reliable applications with messaging
LIDNUG : Reliable applications with messagingLIDNUG : Reliable applications with messaging
LIDNUG : Reliable applications with messaging
 
Distributed Systems Design
Distributed Systems DesignDistributed Systems Design
Distributed Systems Design
 
Silverlight & WCF RIA
Silverlight & WCF RIASilverlight & WCF RIA
Silverlight & WCF RIA
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
AppFabric Velocity
AppFabric VelocityAppFabric Velocity
AppFabric Velocity
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction
 
SOLID Principles part 2
SOLID Principles part 2SOLID Principles part 2
SOLID Principles part 2
 
SOLID Principles part 1
SOLID Principles part 1SOLID Principles part 1
SOLID Principles part 1
 

Recently uploaded

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Hyundai Motor Group
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 

Recently uploaded (20)

Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2Next-generation AAM aircraft unveiled by Supernal, S-A2
Next-generation AAM aircraft unveiled by Supernal, S-A2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 

Change your architecture during deployment

  • 1. Dennis van der Stelt Change your Architecture During deployment Dennis van der Stelt @ Particular Software Makers of NServiceBus @dvdstelt dennis.vanderstelt@particular.net https://bloggingabout.net/ https://calendly/dvdstelt/
  • 3. Dennis van der Stelt Four Three LET’S TALK ABOUT PERSPECTIVE Just because you see things in a way, doesn’tmean someone else is wrong.
  • 5. Dennis van der Stelt London Southampton Plymouth Liverpool Manchester Glasgow Edinburgh Aberdeen WHISKY (neat) WHISKEY (on the rocks) BOURBON SCOTCH
  • 7. Dennis van der Stelt Everything we hear is an opinion, not a fact. Everything we see is a perspective, not the truth Marcus Aurelius
  • 8. Dennis van der Stelt Services Microservices LET’S TALK ABOUT PERSPECTIVE Services aren’t necessarily microservices.But are microservices services?
  • 9. Dennis van der Stelt DIFFERENT VIEWS OF A SYSTEM Which views can we distinguish in this diagram?
  • 10. Dennis van der Stelt C4 MODEL Visualizing software architecture Created by Simon Brown – https://c4model.com
  • 11. Dennis van der Stelt 4+1 ARCHITECTURAL VIEW MODEL Philippe Kruchten,1995 Scenarios Logical view Development view Process view Physical view
  • 12. Dennis van der Stelt 4+1 ARCHITECTURAL VIEW MODEL Philippe Kruchten,1995 Logical view Explains how the system is structured Usually contains services & components Process view Shows communication between services Development view Structure of the components & codebase Usually inside an IDE, source-control repositories, etc. Physical view Shows how services are deployed
  • 13. Dennis van der Stelt 4+1 VIEW MODEL – LOGICAL VIEW This is an example. You probably shouldn’tdo services like this. customer service order service inventory service product service email service
  • 14. Dennis van der Stelt 4+1 VIEW MODEL – PROCESS VIEW Sequence diagrams are just a potential part of this view inventory service product service order service some request some request some response some response
  • 15. Dennis van der Stelt 4+1 VIEW MODEL – PROCESS VIEW When using NServiceBus, ServiceInsightcan provide great sequencediagrams on your message flow
  • 16. Dennis van der Stelt 4+1 VIEW MODEL – DEVELOPMENT VIEW More details about how projects are hosted, data storage, etc. products inventory orders website WebAPI WebAPI WebAPI orders products inventory
  • 17. Dennis van der Stelt 4+1 VIEW MODEL – DEVELOPMENT VIEW Or decide to add a gateway products inventory orders website WebAPI WebAPI WebAPI orders products inventory Gateway WebAPI
  • 18. Dennis van der Stelt 4+1 VIEW MODEL – DEVELOPMENT VIEW GitHub repositories and/or IDE projects
  • 19. Dennis van der Stelt 4+1 VIEW MODEL – PHYSICAL VIEW Remember, these are just examples reversed proxy website website orders products inventory inventory container products container orders container
  • 20. Dennis van der Stelt 4+1 VIEW MODEL The same architecture, but different views Logical View Physical View reversed proxy website website orders products inventory inventory container products container orders container customer service order service inventory service product service email service
  • 21. Dennis van der Stelt
  • 22. Dennis van der Stelt ✓Maximum of 30 lines of code ✓Highly maintainable and testable ✓Loosely coupled ✓Database per microservice ✓Independently deployable ✓Owned by a small team WHAT ARE MICROSERVICES Some random list, copied from a random website
  • 23. Dennis van der Stelt ✓Maximum of 30 lines of code ✓Highly maintainable and testable ✓Loosely coupled ✓Database per microservice ✓Independently deployable ✓Owned by a small team WHAT ARE MICROSERVICES Some random list, copied from a random website
  • 24. Dennis van der Stelt ✓Maximum of 30 lines of code ✓Highly maintainable and testable ✓Loosely coupled ✓Database per microservice ✓Independently deployable ✓Owned by a small team WHAT ARE MICROSERVICES Some random list, copied from a random website
  • 25. Dennis van der Stelt ✓Maximum of 30 lines of code ✓Highly maintainable and testable ✓Loosely coupled ✓Database per microservice ✓Independently deployable ✓Owned by a small team WHAT ARE MICROSERVICES Some random list, copied from a random website
  • 26. Dennis van der Stelt ✓Maximum of 30 lines of code ✓Highly maintainable and testable ✓Loosely coupled ✓Database per microservice ✓Independently deployable ✓Owned by a small team WHAT ARE MICROSERVICES Some random list, copied from a random website
  • 27. Dennis van der Stelt ✓Maximum of 30 lines of code ✓Highly maintainable and testable ✓Loosely coupled ✓Database per microservice ✓Independently deployable ✓Owned by a small team WHAT ARE MICROSERVICES Some random list, copied from a random website
  • 28. Dennis van der Stelt 4+1 VIEW MODEL – SHARED DATABASE Can we share a database among (micro)services? orders products inventory inventory container Logical View Physical View products inventory orders orders products inventory products container orders container website container
  • 29. Dennis van der Stelt 4+1 VIEW MODEL – SHARED DATABASE Can we share a database among (micro)services? orders schema products schema inventory schema inventory container Logical View Physical View products inventory orders orders products inventory products container orders container website container This is nothing more than a schema
  • 30. Dennis van der Stelt 4+1 VIEW MODEL – SHARED DATABASE Can we share a database among (micro)services? inventory container Logical View Physical View products inventory orders orders products inventory products container orders container website container orders schema products schema inventory schema
  • 31. Dennis van der Stelt data ownership is not about how the data is hosted
  • 32. Dennis van der Stelt SHARED DATABASE Can we share a database among (micro)services? inventory products orders website MyServerSqlExpress Databases Orders Products Inventory Tables Orders OrderLines Products Products BackOrder Reserved Tables Tables orders schema products schema inventory schema
  • 33. Dennis van der Stelt SHARED DATABASE Can we share a database among (micro)services? inventory products orders website orders schema products schema inventory schema MyServerSqlExpress Databases RetailShop Tables Orders OrderLines Products Products BackOrder Reserved
  • 34. Dennis van der Stelt ✓Maximum of 30 lines of code ✓Highly maintainable and testable ✓Loosely coupled ✓Database per microservice ✓Independently deployable ✓Owned by a small team WHAT ARE MICROSERVICES Some random list, copied from a random website
  • 35. Dennis van der Stelt ✓Maximum of 30 lines of code ✓Highly maintainable and testable ✓Loosely coupled ✓Database per microservice ✓Independently deployable ✓Owned by a small team WHAT ARE MICROSERVICES Some random list, copied from a random website this is about data ownership not about how we physically deploy
  • 36. Dennis van der Stelt 4+1 VIEW MODEL – SHARED DATABASES Something we definitely don’t want! inventory container Logical View Physical View products inventory orders orders products inventory products container orders container website container orders products inventory
  • 37. Dennis van der Stelt 4+1 VIEW MODEL – SHARED DATABASES Something we definitely don’t want! inventory container Logical View Physical View products inventory orders orders products inventory products container orders container website container orders products inventory
  • 38. Dennis van der Stelt
  • 39. Dennis van der Stelt 4+1 VIEW MODEL – SHARED DATA Services querying each others’ data via RPC calls is much better orders products inventory inventory Logical View Physical View products inventory orders orders products inventory products orders website WebAPI WebAPI WebAPI
  • 40. Dennis van der Stelt 4+1 VIEW MODEL – SHARED DATA Services querying each others’ data via RPC calls is much better orders products inventory inventory Logical View Physical View products inventory orders orders products inventory products orders website WebAPI WebAPI WebAPI Does the logical architecture change if we do this?
  • 41. Dennis van der Stelt 4+1 VIEW MODEL – SHARED DATA Services querying each others’ data via RPC calls is much better </sarcasm> orders products inventory inventory Logical View Physical View products inventory orders orders products inventory products orders website WebAPI WebAPI WebAPI
  • 42. Dennis van der Stelt 4+1 VIEW MODEL – SHARED DATA Services querying each others’ data via RPC calls orders products inventory inventory Bad, bad, baaaaaaaaaad solution The proposed alternative products orders website WebAPI WebAPI WebAPI inventory products orders website orders products inventory
  • 43. Dennis van der Stelt can’t share data via SQL API but you can share data via web API?
  • 44. Dennis van der Stelt how does that improve data ownership
  • 45. Dennis van der Stelt https://go.particular.net/share-data
  • 46. Dennis van der Stelt https://go.particular.net/share-data
  • 47. Dennis van der Stelt ✓Maximum of 30 lines of code ✓Highly maintainable and testable ✓Loosely coupled ✓Database per microservice ✓Independently deployable ✓Owned by a small team WHAT ARE MICROSERVICES Some random list, copied from a random website
  • 48. Dennis van der Stelt ✓Maximum of 30 lines of code ✓Highly maintainable and testable ✓Loosely coupled ✓Database per microservice ✓Independently deployable ✓Owned by a small team WHAT ARE MICROSERVICES Some random list, copied from a random website
  • 49. Dennis van der Stelt INDEPENDENTLY DEPLOYABLE MICROSERVICES Because the deployment makes them loosely coupled Logical view Development view Physical view
  • 50. Dennis van der Stelt 4+1 VIEW MODEL – DEPLOYING COMPONENTS What we did with schemas, can we do that with more? inventory container Logical View Physical View products inventory orders orders products inventory products container orders container website container orders schema products schema inventory schema
  • 51. Dennis van der Stelt 4+1 VIEW MODEL – DEPLOYING COMPONENTS What we did with schemas, can we do that with more? Logical View Physical View products inventory orders orders products inventory website container orders schema products schema inventory schema container inventory products orders
  • 52. Dennis van der Stelt 4+1 VIEW MODEL – DEPLOYING COMPONENTS What we did with schemas, can we do that with more? Logical View Physical View products inventory orders orders products inventory orders schema products schema inventory schema container inventory products orders website
  • 53. Dennis van der Stelt
  • 54. Dennis van der Stelt
  • 55. Dennis van der Stelt
  • 56. Dennis van der Stelt
  • 57. Dennis van der Stelt why did amazon prime change?
  • 58. Dennis van der Stelt Building evolvable software systems is a strategy, not a religion. And revisiting architectures with an open mind is a must.
  • 59. Dennis van der Stelt Microservices were oversold as a solution to everything … by vendors who wanted to sell Kubernetes
  • 60. Dennis van der Stelt
  • 61. Dennis van der Stelt there are no solutions only trade-offs
  • 62. Dennis van der Stelt data ownership in the user interface
  • 63. Dennis van der Stelt DATA OWNERSHIP Let’s dive deeper into data ownership in the user interface orders products inventory inventory Logical View Physical View products inventory orders orders products inventory products orders website WebAPI WebAPI WebAPI
  • 64. Dennis van der Stelt LOGICAL BOUNDARIES Let’s set the stage… Names are removed as we should not focus on names, but rather the colors! Logical View Physical View API API API API API API website
  • 65. Dennis van der Stelt LOGICAL BOUNDARIES Let’s set the stage… Names are removed as we should not focus on names, but rather the colors! Logical View Physical View API API API API API API website logical boundaries physical boundaries
  • 66. Dennis van der Stelt LOGICAL BOUNDARIES Composing data from our back-end Logical View Physical View API API API API API API website composition
  • 67. Dennis van der Stelt DATA COMPOSITION Composing data from our back-end, to fill in details in our UI Patterns of Enterprise Application Architecture 42 customer reviews Add to cart $42.00 save $13.37 Kindle Hardcover This item ships to Haifa, Israel Others with more on the way https://www.amazon.com/peaa-martin/ Product Catalog Inventory Finance Shipping Marketing
  • 68. Dennis van der Stelt LOGICAL BOUNDARIES If we’re composing theuser interface, let’s make that visiblein our physical view Logical View Physical View API API API API API API composition
  • 69. Dennis van der Stelt LOGICAL BOUNDARIES If we’re composing theuser interface, let’s make that visiblein our physical view Logical View Physical View API API API API API API
  • 70. Dennis van der Stelt LOGICAL BOUNDARIES Let’s reflect it also in our logical view Logical View Physical View API API API API API API
  • 71. Dennis van der Stelt Gateway LOGICAL BOUNDARIES For several reasons we want to add a gateway Logical View Physical View API API API API API API Gateway
  • 72. Dennis van der Stelt Gateway LOGICAL BOUNDARIES Having an all-knowing gateway breaks data ownership again Logical View Physical View API API API API API API massive coupling Gateway
  • 73. Dennis van der Stelt DEMO ViewModel Composition Gateway using ASP.NET
  • 74. Dennis van der Stelt Gateway LOGICAL BOUNDARIES Having an all-knowing gateway breaks data ownership again Logical View Physical View API API API API API API massive coupling Gateway
  • 75. Dennis van der Stelt LOGICAL BOUNDARIES The solution Logical View Physical View API API API API API API appender appender appender Composition Gateway Composition Gateway
  • 76. Dennis van der Stelt LOGICAL BOUNDARIES Data ownership means no data sharing. Can 4+1 view models help? Logical View Physical View API API API Composition Gateway appender appender appender API API API Composition Gateway appender appender appender
  • 77. Dennis van der Stelt LOGICAL BOUNDARIES Data ownership means no data sharing. Can 4+1 view models help? Logical View Physical View API API API Composition Gateway appender appender appender API API API Composition Gateway appender appender appender physical boundaries logical boundaries
  • 78. Dennis van der Stelt LOGICAL VS PHYSICAL Let’s stretch the example even further Physical View API Composition Gateway appender
  • 79. Dennis van der Stelt LOGICAL VS PHYSICAL Let’s stretch the example even further Physical View API Composition Gateway appender rpc request
  • 80. Dennis van der Stelt LOGICAL VS PHYSICAL Let’s stretch the example even further Physical View API Composition Gateway appender Composition Gateway appender API rpc request
  • 81. Dennis van der Stelt LOGICAL VS PHYSICAL Let’s stretch the example even further Physical View API Composition Gateway appender Composition Gateway appender API rpc request rpc request
  • 82. Dennis van der Stelt LOGICAL VS PHYSICAL Let’s stretch the example even further Physical View API Composition Gateway appender Composition Gateway appender API also deploy connectionstring rpc request rpc request
  • 83. Dennis van der Stelt LOGICAL VS PHYSICAL Does our logical view change? Logical View Physical View Composition Gateway appender API appender API appender API API API API Composition Gateway appender appender appender
  • 84. Dennis van der Stelt CONCLUSION What have we (hopefully) learned? Different views of your system architecture allow you to alter the structure from design to development to deployment Logical boundary != physical boundary Sharing data over services breaks data ownership and autonomy! Want to learn more? I’d love to share more details if you contact me! It’s “Whisky”, not “Whiskey” ;-)
  • 85. Dennis van der Stelt https://go.particular.net/change-architecture for links to code & more information Free Offer 30-Minute Consultation Question
  • 86. Dennis van der Stelt Dennis van der Stelt dennis.vanderstelt@particular.net @dvdstelt linkedin.com/in/dvdstelt/ calendly.com/dvdstelt https://particular.net/ Solution Architect at Particular Software, makers of NServiceBus