SlideShare a Scribd company logo
SOA Lessons Learnt
(or Microservices Done Better)
Sean Farmar
Particular Software
@farmar1
Tried all “Best Practices”
Layers and Tiers
Distributed monoliths using Web Services
and failed ...
@farmar
My journey to SOA
2
So I went to my master…
@farmar3
Solve the problem you want?
mmmm…
Coupling your problem is…
@farmar4
@farmar5
Coupling Dimensions
Afferent (Ca)
Efferent (Ce)
What depends on you
What you depend on
@farmar6
Coupling Dimensions
Temporal
Time, synchronous communication,
logical temporal coupling
Spatial
Physical, deployment, endpoint address
Platform
Protocols, platform specific features
@farmar7
Durability, Scalability, Maintainability	
var	svc	=	new	MyService();	
var	result	=	svc.Process(data);	
@farmar8
Fallacies of Distributed Computing
1.  The network is reliable. (Bill Joy and Tom Lyon)
2.  Latency is zero. (Bill Joy and Tom Lyon)
3.  Bandwidth is infinite. (Bill Joy and Tom Lyon)
4.  The network is secure. (Bill Joy and Tom Lyon)
@farmar9
Fallacies of Distributed Computing
5.  Topology doesn’t change. (Peter Deutsch)
6.  There is one administrator. (Peter Deutsch)
7.  Transport cost is zero. (Peter Deutsch)
8.  The network is homogeneous. (James Gosling)
@farmar10
Fallacies of Distributed Computing
Fallacies ebook(David Boike):
http://go.particular.net/CMTA17
Ted Neward’s blog:
http://blogs.tedneward.com/post/enterprise-
computing-fallacies/
@farmar11
Why Microservices?
Break down the monolith
@farmar12
Monolith
UI
BL
DAL
DB
Tight		Coupling	
Loose	Coupling	
@farmar13
Vertical Slicing
UI
BL
DAL
DB
 Referential Integrity
Tight		Coupling	
Loose	Coupling	
Re-introduces	Coupling	
Sales
Conten
t
CRMOps
@farmar14
Why SOA?
“Address coupling in our software design by
building loosely coupled and highly
encapsulated components”
Udi Dahan
@farmar15
Process
It’s hard (er)
No silver bullet: use messaging only if it suites
Decomposing your business domain is hard,
no framework/tools will magically fix that
@farmar16
Decomposition
Autonomy
Decompose business entities
by properties/fields
Bounded context == high coupling
@farmar17
Design
Be pragmatic but keep the paradigm
Right size?
Logical “Service” /= Physical Process
@farmar18
Communication
Asynchronous fire and forget, Pub/Sub
Synchronous communications for reads
Use massaging where is works
@farmar19
Software Architecture
Don’t generalise, be explicit
SRP (Single Responsibility Principle)
Keep your vertical slice thin, top to bottom
@farmar20
Data
Referential integrity and GUIDS
Separating data writes and data reads (CQS)
Data (write) ownership
@farmar21
Data
Data reads and eventual consistency
Don’t share your transactional data (OLTP)
You can share your view models
@farmar22
DevOps
Monitoring - Lights on
Testing is HARD
Deployment - Automate everything
@farmar23
Organisation
Get organization and people buy in
Build trust with the business
Build your business not a system
@farmar24
Summary
Avoid all dimensions of coupling
Avoid synchronous communication between
components/microservices,
Don't share data, use view/read models to
share read only data
Just do it, NServiceBus
@farmar25
Q&A
Blog post:
http://particular.net/blog/goodbye-
microservices-hello-right-sized-services
Fallacies EBook:
http://go.particular.net/CMTA17
NServiceBus:
http://particular.net
@farmar26
Thank You!
Sean Farmar
Particular.net
@farmar27

More Related Content

Similar to SOA Lessons Learnt (or Microservices done Better) - Sean Farmar, Particular Software (20)

PPTX
Functional Ideas for a Cloudy Future
Richard Minerich
 
PDF
NDC London 2014: Erlang Patterns Matching Business Needs
Torben Hoffmann
 
PPT
Using Cloud Computing to Change the Game of Finance
BAASS Business Solutions Inc.
 
PDF
1.sap basis material_keylabs1
chipanda
 
PDF
SAP BASIS ONLINE TRAINING MATERIAL by Keylabs
keylabstraining
 
PDF
Technical Recruitment Overview & Tips
UmaShanker Akharia ~ U.S.A.
 
PDF
Getting started with Teradata
Edureka!
 
PPT
scale_perf_best_practices
webuploader
 
PDF
Off-Label Data Mesh: A Prescription for Healthier Data
HostedbyConfluent
 
PDF
SemTech 2010: Pelorus Platform
Clark & Parsia LLC
 
PPTX
Essential Data Engineering for Data Scientist
SoftServe
 
PDF
Security for AWS: Journey to Least Privilege
Lacework
 
PPTX
Security for AWS : Journey to Least Privilege (update)
dhubbard858
 
PDF
How To Do Excel-Like Row Selection in jQuery DataTable?
Polyxer Systems
 
PPTX
Apache Kafka and the Data Mesh | Ben Stopford and Michael Noll, Confluent
HostedbyConfluent
 
PPTX
Big data and analytics
Freeform Dynamics
 
ODP
Cartographer, or Building A Next Generation Management Framework
ansmtug
 
PPTX
Spark-Zeppelin-ML on HWX
Kirk Haslbeck
 
PDF
Security_Measures_Rediff
Rediffmail Enterprise
 
PPT
Lead Allocation System - Attribute Driven Design (ADD)
Amin Bandeali
 
Functional Ideas for a Cloudy Future
Richard Minerich
 
NDC London 2014: Erlang Patterns Matching Business Needs
Torben Hoffmann
 
Using Cloud Computing to Change the Game of Finance
BAASS Business Solutions Inc.
 
1.sap basis material_keylabs1
chipanda
 
SAP BASIS ONLINE TRAINING MATERIAL by Keylabs
keylabstraining
 
Technical Recruitment Overview & Tips
UmaShanker Akharia ~ U.S.A.
 
Getting started with Teradata
Edureka!
 
scale_perf_best_practices
webuploader
 
Off-Label Data Mesh: A Prescription for Healthier Data
HostedbyConfluent
 
SemTech 2010: Pelorus Platform
Clark & Parsia LLC
 
Essential Data Engineering for Data Scientist
SoftServe
 
Security for AWS: Journey to Least Privilege
Lacework
 
Security for AWS : Journey to Least Privilege (update)
dhubbard858
 
How To Do Excel-Like Row Selection in jQuery DataTable?
Polyxer Systems
 
Apache Kafka and the Data Mesh | Ben Stopford and Michael Noll, Confluent
HostedbyConfluent
 
Big data and analytics
Freeform Dynamics
 
Cartographer, or Building A Next Generation Management Framework
ansmtug
 
Spark-Zeppelin-ML on HWX
Kirk Haslbeck
 
Security_Measures_Rediff
Rediffmail Enterprise
 
Lead Allocation System - Attribute Driven Design (ADD)
Amin Bandeali
 

More from Codemotion Tel Aviv (20)

PDF
Keynote: Trends in Modern Application Development - Gilly Dekel, IBM
Codemotion Tel Aviv
 
PDF
Angular is one fire(base)! - Shmuela Jacobs
Codemotion Tel Aviv
 
PDF
Demystifying docker networking black magic - Lorenzo Fontana, Kiratech
Codemotion Tel Aviv
 
PDF
Faster deep learning solutions from training to inference - Amitai Armon & Ni...
Codemotion Tel Aviv
 
PDF
Facts about multithreading that'll keep you up at night - Guy Bar on, Vonage
Codemotion Tel Aviv
 
PDF
Master the Art of the AST (and Take Control of Your JS!) - Yonatan Mevorach, ...
Codemotion Tel Aviv
 
PDF
Unleash the power of angular Reactive Forms - Nir Kaufman, 500Tech
Codemotion Tel Aviv
 
PDF
Can we build an Azure IoT controlled device in less than 40 minutes that cost...
Codemotion Tel Aviv
 
PDF
Actors and Microservices - Can two walk together? - Rotem Hermon, Gigya
Codemotion Tel Aviv
 
PDF
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...
Codemotion Tel Aviv
 
PDF
My Minecraft Smart Home: Prototyping the internet of uncanny things - Sascha ...
Codemotion Tel Aviv
 
PDF
Distributed Systems explained (with NodeJS) - Bruno Bossola, JUG Torino
Codemotion Tel Aviv
 
PDF
Containerised ASP.NET Core apps with Kubernetes
Codemotion Tel Aviv
 
PDF
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Codemotion Tel Aviv
 
PDF
The Art of Decomposing Monoliths - Kfir Bloch, Wix
Codemotion Tel Aviv
 
PDF
S3, Cassandra or Outer Space? Dumping Time Series Data using Spark - Demi Ben...
Codemotion Tel Aviv
 
PDF
Getting Physical with Web Bluetooth - Uri Shaked, BlackBerry
Codemotion Tel Aviv
 
PDF
Web based virtual reality - Tanay Pant, Mozilla
Codemotion Tel Aviv
 
PDF
Material Design Demytified - Ran Nachmany, Google
Codemotion Tel Aviv
 
PDF
All the reasons for choosing react js that you didn't know about - Avi Marcus...
Codemotion Tel Aviv
 
Keynote: Trends in Modern Application Development - Gilly Dekel, IBM
Codemotion Tel Aviv
 
Angular is one fire(base)! - Shmuela Jacobs
Codemotion Tel Aviv
 
Demystifying docker networking black magic - Lorenzo Fontana, Kiratech
Codemotion Tel Aviv
 
Faster deep learning solutions from training to inference - Amitai Armon & Ni...
Codemotion Tel Aviv
 
Facts about multithreading that'll keep you up at night - Guy Bar on, Vonage
Codemotion Tel Aviv
 
Master the Art of the AST (and Take Control of Your JS!) - Yonatan Mevorach, ...
Codemotion Tel Aviv
 
Unleash the power of angular Reactive Forms - Nir Kaufman, 500Tech
Codemotion Tel Aviv
 
Can we build an Azure IoT controlled device in less than 40 minutes that cost...
Codemotion Tel Aviv
 
Actors and Microservices - Can two walk together? - Rotem Hermon, Gigya
Codemotion Tel Aviv
 
How to Leverage Machine Learning (R, Hadoop, Spark, H2O) for Real Time Proces...
Codemotion Tel Aviv
 
My Minecraft Smart Home: Prototyping the internet of uncanny things - Sascha ...
Codemotion Tel Aviv
 
Distributed Systems explained (with NodeJS) - Bruno Bossola, JUG Torino
Codemotion Tel Aviv
 
Containerised ASP.NET Core apps with Kubernetes
Codemotion Tel Aviv
 
Fullstack DDD with ASP.NET Core and Anguar 2 - Ronald Harmsen, NForza
Codemotion Tel Aviv
 
The Art of Decomposing Monoliths - Kfir Bloch, Wix
Codemotion Tel Aviv
 
S3, Cassandra or Outer Space? Dumping Time Series Data using Spark - Demi Ben...
Codemotion Tel Aviv
 
Getting Physical with Web Bluetooth - Uri Shaked, BlackBerry
Codemotion Tel Aviv
 
Web based virtual reality - Tanay Pant, Mozilla
Codemotion Tel Aviv
 
Material Design Demytified - Ran Nachmany, Google
Codemotion Tel Aviv
 
All the reasons for choosing react js that you didn't know about - Avi Marcus...
Codemotion Tel Aviv
 
Ad

Recently uploaded (20)

PPTX
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
PDF
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
PDF
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
PDF
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
PDF
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
PPTX
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
NewMind AI - Journal 100 Insights After The 100th Issue
NewMind AI
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Building Resilience with Digital Twins : Lessons from Korea
SANGHEE SHIN
 
Empower Inclusion Through Accessible Java Applications
Ana-Maria Mihalceanu
 
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
Windsurf Meetup Ottawa 2025-07-12 - Planning Mode at Reliza.pdf
Pavel Shukhman
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
Building and Operating a Private Cloud with CloudStack and LINBIT CloudStack ...
ShapeBlue
 
Ad

SOA Lessons Learnt (or Microservices done Better) - Sean Farmar, Particular Software