SlideShare a Scribd company logo
Getting out of the monolith hell
Domenico Musto
Domenico Musto
▪ Principal Engineer at Spektrix
▪ Distributed systems
▪ REST
▪ Messaging
▪ Automation testing
▪ Continuous delivery
domenico.musto@gmail.com
@mimmozzo
Getting out of the monolith hell
Monolithic architecture is great
Monolithic architecture
▪ Is easy to understand
Monolithic architecture
▪ Is easy to understand
▪ A single code base
Monolithic architecture
▪ Is easy to understand
▪ A single code base
▪ No integration issues
Monolithic architecture
▪ Is easy to understand
▪ A single code base
▪ No integration issues
▪ A single deployment pipeline
Getting out of the monolith hell
Getting out of the monolith hell
Getting out of the monolith hell
Getting out of the monolith hell
Getting out of the monolith hell
▪ The code base gets too large and difficult to work with
▪ The code base gets too large and difficult to work with
▪ The IDE is overloaded
▪ The code base gets too large and difficult to work with
▪ The IDE is overloaded
▪ Continuous delivery is difficult
SOFTWARE DEVELOPMENT CYCLE
BUILD TEST RELEASE
SOFTWARE DEVELOPMENT CYCLE
BUILD TEST RELEASE
SOFTWARE
SOFTWARE DEVELOPMENT CYCLE
BUILD TEST RELEASE
SOFTWARE
SOFTWARE DEVELOPMENT CYCLE
BUILD TEST RELEASE
SOFTWARE
SOFTWARE DEVELOPMENT CYCLE
BUILD TEST RELEASE
▪ The code base gets too large and difficult to work with
▪ The IDE is overloaded
▪ Continuous delivery is difficult
▪ The system is difficult to scale
▪ The code base gets too large and difficult to work with
▪ The IDE is overloaded
▪ Continuous delivery is difficult
▪ The system is difficult to scale
▪ Scaling the dev team is difficult
▪ The code base gets too large and difficult to work with
▪ The IDE is overloaded
▪ Continuous delivery is difficult
▪ The system is difficult to scale
▪ Scaling the dev team is difficult
▪ Hard to adopt new technologies
▪ The code base gets too large and difficult to work with
▪ The IDE is overloaded
▪ Continuous delivery is difficult
▪ The system is difficult to scale
▪ Scaling the dev team is difficult
▪ Hard to adopt new technologies
The monolith hell
Distributed system
▪ Speed up delivery by reducing development friction
▪ Scale the system
▪ Scale the development team
▪ Increase the uptime of your application
Agenda
▪ Business capabilities
▪ Components
▪ Integration patterns
▪ From monolith to distributed
▪ Pitfalls
Business capabilities
Identify business capabilities
▪ Things that the business / product can do
Identify business capabilities
▪ Things that the business / product can do
▪ Shared domain space and language
Identify business capabilities
▪ Things that the business / product can do
▪ Shared domain space and language
▪ A team could be built around
Identify business capabilities
▪ Things that the business / product can do
▪ Shared domain space and language
▪ A team could be built around
▪ Micro products
Getting out of the monolith hell
Getting out of the monolith hell
Components
Orders
Component A Component B
Component C
Users
Component A Component B
Component C
Components
▪ Autonomous
Ian Cooper
Components
▪ Autonomous
▪ Explicit boundaries
Ian Cooper
Components
▪ Autonomous
▪ Explicit boundaries
▪ Bounded context
Ian Cooper
Components
▪ Autonomous
▪ Explicit boundaries
▪ Bounded context
▪ Decentralized governance
Ian Cooper
Components
▪ Autonomous
▪ Explicit boundaries
▪ Bounded context
▪ Decentralized governance
▪ Distributable
Ian Cooper
Integration patterns
Orders
- Understands and owns orders data
- Drives orders workflows
Users
- Understands and owns users data
- Drives users workflows
HTTP VS Messaging
HTTP
Orders
OrderComponent
HTTP
Users
UsersAPI
https://api.awesome.com/users/32
HTTP goodness
▪ Easy
HTTP goodness
▪ Easy
▪ Synchronous
HTTP goodness
▪ Easy
▪ Synchronous
▪ Caching
HTTP weakness
▪ Reduces service autonomy
Orders
OrderComponent
HTTP
Users
UsersAPI
https://api.awesome.com/users/32
Orders
OrderComponent
HTTP
Users
UsersAPI
https://api.awesome.com/users/32
HTTP weakness
▪ Reduces service autonomy
▪ RPC temptation
HTTP weakness
▪ Reduces service autonomy
▪ RPC temptation
▪ Versioning
Messaging
Messaging
Users
ClaimsAPI
MESSAGE BROKER
UserCreated
Orders
Consumer
Orders
Consumer
Messaging
Users
ClaimsAPI
MESSAGE BROKER
Reference
Data
UserCreated
Reference data
UserCreated
{
Id: 1,
Username: “domenico”,
Email: “domenico.musto@gmail.com”,
Twitter: “@mimmozzo”,
Version: 1
}
USERS
MESSAGE
BROKER
Reference data
MESSAGE
BROKER
ORDERS
Recipient
Id : int
Email : string
Version: int
Type of messages
▪ Events
▪ Document messages
▪ Commands
Event
▪ Informs the outside world that something has happened
Event
▪ Informs the outside world that something has happened
▪ Past sequence
Event
▪ Informs the outside world that something has happened
▪ Past sequence
▪ Unique ID
Event
UserDeleted {
Id: 100,
UserId: 200
}
Document Message
UserCreated {
Id: 100,
Name: ‘Domenico’,
LastName: ‘Musto’,
Email: ‘domenico.musto@gmail.com’,
Twitter: ‘@mimmozzo’
}
Command
▪ A demand to do something
Command
▪ A demand to do something
▪ Imperative sentence
Command
SendEmail{
Id: 100,
To: ‘domenico.musto@gmail.com’,
From: ‘info@myecommerce.com’,
Subject: ‘Welcome’,
Content: ‘Enjoy’
}
Operating events
Operating events
▪ Eventual consistency
▪ Compensation
▪ Idempotence
Operating events – eventual consistency
Recipient
Id : 100
Email : email@gmail.com
Version: 1
Orders
Operating events – eventual consistency
Recipient
Id : 100
Email : email@gmail.com
Version: 1
OrdersUserEmailUpdated
{
Id: 100,
Email: “new@gmail.com”,
Version: 1
}
Operating events – eventual consistency
Recipient
Id : 100
Email : new@gmail.com
Version: 2
OrdersUserEmailUpdated
{
Id: 100,
Email: “new@gmail.com”,
Version: 1
}
Operating events – compensation
Operating events – compensation
USERS
USERS
EVENTS
USERS EVENT
PUBLISHER
MESSAGE BROKER
Operating events – idempotence
Operating events – idempotence
Recipient
Id : 100
Email : email@gmail.com
Version: 1
OrdersUserEmailUpdated
{
Id: 100,
Email: “new@gmail.com”,
Version: 3
}
Operating events – idempotence
Recipient
Id : 100
Email : new@gmail.com
Version: 3
OrdersUserEmailUpdated
{
Id: 100,
Email: “old@gmail.com”,
Version: 2
}
Messaging goodness
▪ Decoupling
Messaging goodness
▪ Decoupling
▪ Service autonomy
Messaging goodness
▪ Decoupling
▪ Service autonomy
▪ Versioning
Messaging weakness
▪ Async
Messaging weakness
▪ Async
▪ Eventual consistency
Messaging weakness
▪ Async
▪ Eventual consistency
▪ Enforce idempotency
HTTP or Messaging ?
▪ Async VS Sync
HTTP or Messaging ?
▪ Async VS Sync
▪ Cross BCs integration ?
From Monolith to Distributed
MONOLITH
MONOLITH DB
MONOLITH
MONOLITH DB
SERVICE
MONOLITH
MONOLITH DB
SERVICE
MONOLITH
MONOLITH DB
SERVICE
MONOLITH
MONOLITH DB
SERVICE
EVENTS
MONOLITH
MONOLITH DB
SERVICE
EVENTS
SERVICE DB AND
CATAGLO DATA
MONOLITH
MONOLITH DB
SERVICE
EVENTS
SERVICE DB AND
CATAGLO DATA
Pitfalls
Pitfalls
▪ Nano services
Pitfalls
▪ Nano services
▪ Too many services to perform a business workflow
Pitfalls
▪ Nano services
▪ Too many services to perform a business workflow
▪ Fragmented logic
Pitfalls
▪ Nano services
▪ Too many services to perform a business workflow
▪ Fragmented logic
▪ Management and cost overhead
Distributed system
▪ Speed up delivery by reducing development friction
▪ Scale the system
▪ Scale the development team
▪ Increase the uptime of your application
Thanks.
domenico.musto@gmail.com
@mimmozzo

More Related Content

PPTX
Getting out of the monolith hell
PDF
InvisibleStudio for Oracle's CRM Desktop
PPTX
Challenges and best practices of database continuous delivery
PDF
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
PPTX
Confidence web
PPT
SDWest2005Goetsch
PDF
Under the Wire PowerShell workshop - BSides Augusta 2018
PPTX
Cerebro for vfx eng
Getting out of the monolith hell
InvisibleStudio for Oracle's CRM Desktop
Challenges and best practices of database continuous delivery
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Confidence web
SDWest2005Goetsch
Under the Wire PowerShell workshop - BSides Augusta 2018
Cerebro for vfx eng

Similar to Getting out of the monolith hell (20)

KEY
Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...
PPTX
How to install IBM Connections in a Coffe Break
PDF
O365con14 - migrating your e-mail to the cloud
PDF
Continuous delivery @wcap 5-09-2013
PPTX
How I Learned to Stop Worrying and Love Legacy Code.....
PPTX
How to build a SaaS solution in 60 days
KEY
Modern Web Technologies — Jerusalem Web Professionals, January 2011
PDF
Learned lessons in real world projects by Jordi Anguela at Mallorca Software ...
PDF
20111006 synergie informatique-label-qualityof-experience_en
PDF
Continuous Delivery at Wix, Yaniv Even Haim
ODP
Deploying your SaaS stack OnPrem
PPTX
GIB2021 - Dan Probert - BizTalk Migrator Deep Dive
PPT
Praxistaugliche notes strategien 4 cloud
PDF
The Ultimate Administrator’s Guide to HCL Nomad Web
PPT
eSynergy Keiran Sweet - Bringing order to chaos with puppet
PDF
The Enterprise Architecture you always wanted: A Billion Transactions Per Mon...
PPT
Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12
PDF
Stackato v3
PDF
Stackato v6
PPTX
Can you process 10 trillion logs per day software architecture conference 2015
Modern Web technologies (and why you should care): Megacomm, Jerusalem, Febru...
How to install IBM Connections in a Coffe Break
O365con14 - migrating your e-mail to the cloud
Continuous delivery @wcap 5-09-2013
How I Learned to Stop Worrying and Love Legacy Code.....
How to build a SaaS solution in 60 days
Modern Web Technologies — Jerusalem Web Professionals, January 2011
Learned lessons in real world projects by Jordi Anguela at Mallorca Software ...
20111006 synergie informatique-label-qualityof-experience_en
Continuous Delivery at Wix, Yaniv Even Haim
Deploying your SaaS stack OnPrem
GIB2021 - Dan Probert - BizTalk Migrator Deep Dive
Praxistaugliche notes strategien 4 cloud
The Ultimate Administrator’s Guide to HCL Nomad Web
eSynergy Keiran Sweet - Bringing order to chaos with puppet
The Enterprise Architecture you always wanted: A Billion Transactions Per Mon...
Puppet at DemonWare - Ruaidhri Power - Puppetcamp Dublin '12
Stackato v3
Stackato v6
Can you process 10 trillion logs per day software architecture conference 2015
Ad

More from mimmozzo_ (8)

PPTX
Coding and architecting for agility
PPTX
Don't just write code, change your business
PPTX
Continuous delivery made
PPTX
Sustainable agile testing
PPTX
Continuous delivery made possible
PPTX
Event driven architecture in practice
PDF
The Testing Strategy
ODP
Unit Tests VS End To End Tests
Coding and architecting for agility
Don't just write code, change your business
Continuous delivery made
Sustainable agile testing
Continuous delivery made possible
Event driven architecture in practice
The Testing Strategy
Unit Tests VS End To End Tests
Ad

Recently uploaded (20)

PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PPTX
CHAPTER 2 - PM Management and IT Context
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
PPTX
Transform Your Business with a Software ERP System
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
top salesforce developer skills in 2025.pdf
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
medical staffing services at VALiNTRY
PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Digital Strategies for Manufacturing Companies
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Wondershare Filmora 15 Crack With Activation Key [2025
CHAPTER 2 - PM Management and IT Context
Understanding Forklifts - TECH EHS Solution
ManageIQ - Sprint 268 Review - Slide Deck
Transform Your Business with a Software ERP System
Online Work Permit System for Fast Permit Processing
Operating system designcfffgfgggggggvggggggggg
How to Migrate SBCGlobal Email to Yahoo Easily
Odoo Companies in India – Driving Business Transformation.pdf
top salesforce developer skills in 2025.pdf
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
medical staffing services at VALiNTRY
PTS Company Brochure 2025 (1).pdf.......
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Digital Strategies for Manufacturing Companies
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises

Getting out of the monolith hell