SlideShare a Scribd company logo
1 of 233
Download to read offline
@cyriux
Cyrille Martraire
DDDPatterns
Beyond the Blue Book
Event Storming Event Sourcing
CQRS
DDD
What	was	before?
Is	it	useful?
Can	I	get	better	at	DDD	by	looking	
at	things	outside	of	DDD?
This	talk	is	the	answer.
Passionate developer
Deliberate Designer
PARIS
Since 1999
@cyriux
Cyrille Martraire
Paris Software Craftsmanship
Community since 2011
http://www.meetup.com/paris-software-craftsmanship/
arolla.fr @arollafr
arolla.fr @arollafr
TDDBDDDDD
Software Development
Its history
Software Engineering
Tools, notations, MDA
19
Vendor-sponsored conferences
Fortunately
Eric Evans - Domain-Driven Design
Should	it	be	the	
only	book	to	read	
to	learn	Domain-
Driven	Design?
THE ONE & ONLY BOOK?
Any	headline	that	ends	
in	a	question	mark	can	
be	answered	by	no.
Eric	Evans	advocates	in	
his	book	to	look	outside	
for	more	patterns	&	
inspirations.
I	did.
For	this	talk	I	have	
selected	43	patterns	and	
I'm	going	to	explain	them	
one	by	one	now.
<Facepalm>
OK.
"The best way to get the
right answer on the Internet
is not to ask a question, it's
to post the wrong answer.”
— Cunningham’s Law
Ward Cunningham
WIKI
XP
CRC Cards
Ward Cunningham
Patterns
in software!
http://c2.com/ppr/checks.html
DDD Inspiration
CHECKS Patterns
1. Whole Value
2. Exceptional cases (absence, error…)
3. Meaningless Behavior
4. Echo Back
5. Visible Implication
6. Deferred Validation
7. Instant Projection
8. Hypothetical Publication
9. Forecast Confirmation
10. Diagnostic Query Analysis Patterns
25m	+	10m	=	35m
(Custom Arithmetics)
Whole Object with unit.
Whole Object
Whole Object
#NoPrimitive
”Because	bits,	strings	and	numbers	can	be	
used	to	represent	almost	anything,	any	one	
in	isolation	means	almost	nothing.”
Exceptional Value
NaN	
Unde:ined	
NotApplicable
25m													+	NaN											=	NaN
Don’t	clutter	your	code		
with	special	case	handing
going	further…
Cashflow Sequence
+
Cashflow Sequence
=
Cashflow Sequence
Monoid
Could we say
that?
HotelBooking
Jan26to27 HotelBooking
Jan27to29
HotelBooking
Jan26to29
+
=
Monoid
Monoids
Vector Spaces
Cyclic Groups
Monoids	
advertisement		
brought	to	you	by	
@cyriux!
CHECKS Patterns
Traceability
Normal display: 652 MM USD EQV
Diagnostic display: 622,456,325.07 USD
+ 3,624,878,450 JPY
+ 23,549.54 FRF
CHECKS Patterns
1. Whole Value
2. Exceptional cases (absence, error…)
3. Meaningless Behavior
4. Echo Back
5. Visible Implication
6. Deferred Validation
7. Instant Projection
8. Hypothetical Publication
9. Forecast Confirmation
10. Diagnostic Query Analysis Patterns
THE
WORLD’s
FIRST
WIKI
PLoP98
Mind the biblio
In most domain
models, most design
patterns are
technical noise.
observer
Singleton
Factory
Command
VISITOR
MEDIATOR
Manager
observer
PROXY
FACADE
MEMENTO
But some design
patterns also
describe business
domain concepts
and relations.
Composite
Interpreter
Flyweight
Strategy
observer
Singleton
Factory
Command
VISITOR
MEDIATOR
Manager
observer
PROXY
FACADE
MEMENTO
Good-Old hint:
”Use pattern
names in type
names.”
In a domain model,
avoid pattern names
in types names.
DateAdjustmentStrategy
Strategy
DateAdjustment
DayShiftMethod
EndOfMonthRule
RoundingConvention
CalculationMode
Strategy
DateAdjustment
DayShiftMethod
EndOfMonthRule
RoundingConvention
CalculationMode
Strategy
Belongs to the
Ubiquitous
Language
ReimbursementPolicy
EligibilityCriterion
AcceptanceSpecification
Strategy
Belongs to the
Ubiquitous Language
AccountingValuation
NetPresentValueValuation
LinearValuation
BenchmarkBasedValuation
AssetBasedValuation
Strategy
AccountingValuations
NetPresentValueValuation
LinearValuation
BenchmarkBasedValuation
AssetBasedValuation
Strategy
Belongs to the
Ubiquitous
Language
AccountingValuations
NetPresentValueValuation
LinearValuation
BenchmarkBasedValuation
AssetBasedValuation
Strategy
No Noise
ValuationImpl
Strategy
Strategy Pattern
VAT
VAT on net price
Not Applicable
Calculation
+ Null Object
Null Object.
No, you should not
replace every
Null Object with
Optional<T>
When to apply a
pattern? (or not)
IF Statements vs. Strategy pattern?
Naming-Driven
Whichever reveals the
business domain best
AccountingValuation
NetPresentValueValuation
LinearValuation
BenchmarkBasedValuation
AssetBasedValuation
Strategy
DateAdjustmentStrategy
Domain Patterns
#NotInMyName
Annotate classes with custom annotations
Stereotypes Annotations
Stereotypes Annotations
Annotate classes with custom annotations
Domain type names are
precious. They are for
domain naming.
Use annotations to
document the
stereotypes instead.
Stereotypes Annotations
Annotate classes with custom annotations
Embedded Learning
Stereotypes Annotations
Annotate with custom annotations
Stereotypes Annotations
Annotate with custom annotations
Stereotypes Annotations
Annotate domain classes with custom annotations
Stereotypes Annotations
Annotate domain classes with custom annotations
And learn on the job!
https://leanpub.com/livingdocumentation
BUY MY BOOK!
LIVING DOCUMENTATION
And	now	for	more	Object-
Oriented	Patterns
But Cyrille,
Nobody does
Object-
Oriented
anymore!
NOW WE DO
FP!
#NoPAttern
Evergreen
SKILLS
Evergreen skills
are worth
learning
So	now…	
Introducing	the	Flyweight	
pattern!
Flyweight
Intent:	Use	sharing	to	support	large	
numbers	of	[ine-grained	objects	ef[iciently
”Hahaha.
Nobody uses the
Flyweight”
A matter of
Compression
= 3x
503010 …
Flyweight
BUY SELL
503010 …
Flyweight
We always want to make
multiplicity manageable
503010 …
-503010 …
Flyweight
-503010 …
{10, 30, -50 …}
Flyweight
{10, 30, -50 …}
∑ = -10
Flyweight
∑ = -10
manageable
= aggregable,
comparable…
Flyweight
Equity Trading:
Standard Stock
Multiple Trades of the same
$10M
-
$30M
- -
$50M
x
$10M
IBM
$30M
IBM AXA
$50M
Derivative Trading:
Multiple Contracts with
a common structure
$10M
IBM
$30M
IBM AXA
$50M
Derivative Trading:
x
$10M
IBM
$30M
IBM AXA
$50M
The essence of Flyweight
x
Many small, calculable elements One Blackbox
IntrinsicExtrinsic
#WIN
Flyweight
#WIN
This never works.
I see what you mean…
BUT no way, IT DOES NOT
WORK from a legal
perspective!
FATAL
OBJECTION
FATAL
OBJECTION
as hint of bounded
Context!
Tip: Focus on one context
=
≠
≠
Works in this context only
=
≠
≠
Legal
Money
Management
It works in my context!
=
≠
Transport
Regulation
Cargo
Shipping
In what
PERSPECTIVE could
we say that?
Bounded
Context
Different Bounded
Contexts,
Different Patterns.
Different Patterns,
Different Bounded
Contexts.
#WorksInMyContext
HEY
CYRILLE
WHY U SO
FASCINATED
with patterns?
Would you build
Photoshop only
with IF statements
and FOR loops?
for (...)
if (...)
if (..)
{
for...
}
else
else
while
for (...)
if (...)
if (..)
{
for...
}
else
else
while
You should
have a look at
design patterns!
Strategy
+
State
=
EASY AGAIN!
Patterns
ABUSE
(Like every
beginner)
Then	I	discovered	Martin	Fowler
Event Sourcing-ish
Retail Banking
Medical Care
Traceability
Patterns illustrate
deeper principles.
Traceability always
points to the Past.
(aka. Consequences depend on the Cause)
ORDER
BASKET
PAYMENT
RETURN
time
refers torefers torefers to
causality
e-commerce
Study the patterns.
Digest the principles.
Apply to new domains.
CLAIM
INSURANCE
POLICY
LOSS
$
PAYMENT
time
refers torefers torefers to
causality
Insurance
Evergreen
SKILLS
Different domains,
same principle
Supple	Domain	Models
Bespoke	Code
Bespoke, Custom.
OK.
Reinventing the Wheel.
NOT OK.
https://martinfowler.com/eaaDev/timeNarrative.html
Temporal Property
https://martinfowler.com/eaaDev/timeNarrative.html
Snapshot
https://martinfowler.com/eaaDev/timeNarrative.html
Temporal Object
Effectivity Range
Agreement v1 - effectivity: [01/2016, 01/2017[
Agreement v2 - effectivity: [01/2017, 01/2018[
Agreement v3 - effectivity: [01/2018, - [
Invariant:	ranges	are	continuous	&	non-
overlapping
Effectivity Range
Agreement v1 - effectivity: [01/2016, 01/2017[
Agreement v2 - effectivity: [01/2017, 01/2018[
Agreement v3 - effectivity: [01/2018, - [
06/2017
Invariant:	ranges	are	continuous	&	non-
overlappingWhat version was
effective on this date?
https://martinfowler.com/eaaDev/timeNarrative.html
Bi-temporal Time
Time has two
dimensions in software!
[…] you may have only additive
changes. An additive change
always goes onto the end of the
record.
https://martinfowler.com/eaaDev/timeNarrative.html
Append-only
Compensation
[…] you may have only additive
changes. An additive change
always goes onto the end of the
record.
https://martinfowler.com/eaaDev/timeNarrative.html
Event-Sourcing-ish
Excellent Design
Teaching Material
Learn the
history, not just
the end state.
Learning Steps
(à la Event Sourcing)
Know the Holy Family
:)
Illustrious
Ancestors
Rebecca J. Wirfs-Brock
First RDD
paper in
1989!
http://tonyprusac.blogspot.fr/2015/11/deco2300-week-6.html
CRC Cards
Event Storming Ancestor
@mathiasverraes@ziobrando
MOAR
ANALYSIS
PATTERNS
TO DESIGN
DOMAIN
MODELS
Not just Code
Also Ideas!
Reuse all the things!
And past insights
164
A Business Transaction
A quantity of
something
(e.g. cash)
A quantity of
something
else
165
A Business Transaction
A quantity of
something
(e.g. cash)
A quantity of
something
else
Law: one side has to be cash
166
A Business Transaction
A quantity of
something
(e.g. cash)
A quantity of
something
else
Received
Date
Paid
Date
Trade
Date
Congratulations!
You can now reuse
this domain insight!
WHY NOT WRITE
YOUR OWN
PATTERNS?
SO MANY
ANALYSIS
PATTERNS
TO DESIGN
DOMAIN
MODELS
Most developers
have never seen a
domain model.
They've only seen
data models.
WHAT’S A
DOMAIN MODEL?
Let’s take an
example
Loan Approval
Loan
Application
System
Credit
Bureau
Signatures
Requests
Approval
100k$
Approved/
Rejected
Loan Approval
Loan
Application
System
Credit
Bureau
Signatures
Requests
Approval
100k$
change
to
90k$
Accept with
in-place mutation :(
Do you
approve
this 100k$
loan?
I approved
this 90k$
loan!
Do you
approve
this 100k$
loan?
… What
do I do
with that
now?!!
Answering a
different question is
rude!
(plus sync back the
mutation is not so easy)
What if we just
reject with a
suggestion to change
the amount before
re-submit?
In other words:
”Single Path to
Approval”
Jez Humble and David Farley, “Continuous Delivery: Reliable Software Releases through
Build, Test, and Deployment Automation”, Addison Wesley Professional, 2010
In other words:
”Single Path to
Approval”Production
Jez Humble and David Farley, “Continuous Delivery: Reliable Software Releases through
Build, Test, and Deployment Automation”, Addison Wesley Professional, 2010
Continuous Delivery
Loan Approval
Loan
Application
System
Credit
Bureau
Signatures
Reject + suggest
reduced amount
Requests
Approval
100k$
OK for
90k$
x
Approved/
Rejected
No patch here!
Fix the source then commit as usual
No way! It would
delay the process!
Plus we don’t want to
ask approvers to sign
again!
Business
OK.
Still, perhaps we
could do it anyway…
Dev Team
OK for 100k$
➜
a fortiori OK for 90k$
➜
”A fortiori principle”
No need to sign again!
Now we need to codify
accurately what
a fortiori means.
That’s modeling the
domain.
Not that hard:
Lower risk -> a fortiori OK.
Domain Modeling
means forming an
opinion on how it
behaves.
Programming as Theory-
Building
— Peter Naur (1985)
Anything can be an
inspiration.
Even Continuous Delivery
patterns!
Let’s take another
example
Only rebuild what needs to
be rebuilt after a change
Given a set of source code
files
http://maemo.org/maemo_release_documentation/maemo4.1.x/node5.html
http://maemo.org/maemo_release_documentation/maemo4.1.x/node5.html
http://maemo.org/maemo_release_documentation/maemo4.1.x/node5.html
Imagine doing that
with a workflow
engine?
GNU Make has an
opinion on how to
consider the
problem.
Declare the dependencies.
Let the tool find out the
workflow.
http://maemo.org/maemo_release_documentation/maemo4.1.x/node5.html
http://maemo.org/maemo_release_documentation/maemo4.1.x/node5.html
ReviewRisk
check
Legal
check
Management
Review
Management
Review
Product
Launch
R&D
Done
Sales
Ready
Marketing
Campaign
Product Specs
Product Design
A breakthrough in domain
modeling
Why insist on using
workflow engines
everywhere?
Do you have an
opinion on how to
consider the
business domain?
(Hint: ”We need Event
Sourcing” is probably not the
best answer)
Which pattern?
”Propose several models, choose one.”
Design Spike.
Try them.
Which pattern?
from simple to less simple.
Teaching Patterns
to your team mates
Mob-Programming
@woodyzuill
https://www.industriallogic.com/blog/design-patterns-playing-cards/
Design Patterns Poker cards
Design Patterns Poker cards
Show the benefits.
Don’t preach.
Own Internal Branding
You don’t have to talk
Flyweight or Monoid
The best code sample for training is
your own code base.
Embedded Learning
YOU DIDN’T SEE
ALL THESE PATTERNS
BEFORE?
You probably
procrastinate on
tech stuff.
No, you probably
don’t need this
Event Sourcing
here.
You probably should
spend more time
Domain Model
Technical Infrastructure
HERE
Design is hard?
Do it more often!
From Scratch?
Lack of domain
maturity makes
everything look
CRUD.
Mature Legacy
Systems FTW!
NEW HORIZONS
DCI by Jim Coplien #DDDEU
https://blog.acolyer.org/ http://paperswelove.org/
In closing
Many patterns authors.
Many patterns.
They converge, mostly.
No need to learn them all.
Many patterns authors.
Many patterns.
Still, learn more than one!
So many patterns outside
the Blue Book
But do you really know all
the patterns in the Blue
Book?
Merci !
h$p://cathy313.centerblog.net/539-bisounours
Follow me @cyriux
Slides: slideshare.net/cyriux
Blog: cyrille.martraire.com
We offer training, coaching & consulting on DDD, BDD, TDD

More Related Content

What's hot

Swarming: How a new approach to support can save DevOps teams from 3rd-line t...
Swarming: How a new approach to support can save DevOps teams from 3rd-line t...Swarming: How a new approach to support can save DevOps teams from 3rd-line t...
Swarming: How a new approach to support can save DevOps teams from 3rd-line t...Jon Stevens-Hall
 
Protecting Agile Transformation through Secure DevOps (DevSecOps)
Protecting Agile Transformation through Secure DevOps (DevSecOps)Protecting Agile Transformation through Secure DevOps (DevSecOps)
Protecting Agile Transformation through Secure DevOps (DevSecOps)Eryk Budi Pratama
 
Agile - Scrum Presentation
Agile - Scrum PresentationAgile - Scrum Presentation
Agile - Scrum Presentationgihanlsw
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing MicroservicesNagarro
 
Google Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZoneGoogle Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZoneIdan Tohami
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecturetyrantbrian
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Edureka!
 
Anil_Testing_Trainer
Anil_Testing_TrainerAnil_Testing_Trainer
Anil_Testing_TrainerAnil Kumar
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SREAraf Karsh Hamid
 
Building modern data lakes
Building modern data lakes Building modern data lakes
Building modern data lakes Minio
 
Managing Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform EngineeringManaging Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform EngineeringAdityo Pratomo
 
Managed Feature Store for Machine Learning
Managed Feature Store for Machine LearningManaged Feature Store for Machine Learning
Managed Feature Store for Machine LearningLogical Clocks
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101Sander Knape
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Araf Karsh Hamid
 
Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process John Derrico
 

What's hot (20)

Swarming: How a new approach to support can save DevOps teams from 3rd-line t...
Swarming: How a new approach to support can save DevOps teams from 3rd-line t...Swarming: How a new approach to support can save DevOps teams from 3rd-line t...
Swarming: How a new approach to support can save DevOps teams from 3rd-line t...
 
Data Product Architectures
Data Product ArchitecturesData Product Architectures
Data Product Architectures
 
Protecting Agile Transformation through Secure DevOps (DevSecOps)
Protecting Agile Transformation through Secure DevOps (DevSecOps)Protecting Agile Transformation through Secure DevOps (DevSecOps)
Protecting Agile Transformation through Secure DevOps (DevSecOps)
 
Agile - Scrum Presentation
Agile - Scrum PresentationAgile - Scrum Presentation
Agile - Scrum Presentation
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 
Testing Microservices
Testing MicroservicesTesting Microservices
Testing Microservices
 
Google Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZoneGoogle Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZone
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
Vertical Slicing
Vertical SlicingVertical Slicing
Vertical Slicing
 
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
 
Anil_Testing_Trainer
Anil_Testing_TrainerAnil_Testing_Trainer
Anil_Testing_Trainer
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
 
Building modern data lakes
Building modern data lakes Building modern data lakes
Building modern data lakes
 
Managing Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform EngineeringManaging Infrastructure as a Product - Introduction to Platform Engineering
Managing Infrastructure as a Product - Introduction to Platform Engineering
 
Agile Jira Reporting
Agile Jira Reporting Agile Jira Reporting
Agile Jira Reporting
 
Managed Feature Store for Machine Learning
Managed Feature Store for Machine LearningManaged Feature Store for Machine Learning
Managed Feature Store for Machine Learning
 
Platform engineering 101
Platform engineering 101Platform engineering 101
Platform engineering 101
 
Microservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
 
Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018Microservices Architecture - Bangkok 2018
Microservices Architecture - Bangkok 2018
 
Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process Understanding the Agile Release and Sprint Planning Process
Understanding the Agile Release and Sprint Planning Process
 

Viewers also liked

Domain Driven Design in the Browser - Cameron Edwards
Domain Driven Design in the Browser - Cameron EdwardsDomain Driven Design in the Browser - Cameron Edwards
Domain Driven Design in the Browser - Cameron EdwardsHakka Labs
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)IT Arena
 
Beyond design patterns and principles - writing good OO code
Beyond design patterns and principles - writing good OO codeBeyond design patterns and principles - writing good OO code
Beyond design patterns and principles - writing good OO codeMatthias Noback
 
Solid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignSolid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignIrwansyah Irwansyah
 
Domain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCSteven Smith
 
Implementing DDD with C#
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#Pascal Laurin
 
Domain-driven design - tactical patterns
Domain-driven design - tactical patternsDomain-driven design - tactical patterns
Domain-driven design - tactical patternsTom Janssens
 
Architecture Principles CodeStock
Architecture Principles CodeStock Architecture Principles CodeStock
Architecture Principles CodeStock Steve Barbour
 
Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?VMware Tanzu
 
2011 iska - tim m - domain driven design
2011   iska - tim m - domain driven design2011   iska - tim m - domain driven design
2011 iska - tim m - domain driven designTim Mahy
 
Automation of functional tests using JMeter Part II (in Polish)
Automation of functional tests using JMeter Part II (in Polish)Automation of functional tests using JMeter Part II (in Polish)
Automation of functional tests using JMeter Part II (in Polish)Tieto Corporation
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design QuicklyMariam Hakobyan
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocitySam Newman
 

Viewers also liked (15)

Domain Driven Design in the Browser - Cameron Edwards
Domain Driven Design in the Browser - Cameron EdwardsDomain Driven Design in the Browser - Cameron Edwards
Domain Driven Design in the Browser - Cameron Edwards
 
Architecting iOS Project
Architecting iOS ProjectArchitecting iOS Project
Architecting iOS Project
 
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
 
Beyond design patterns and principles - writing good OO code
Beyond design patterns and principles - writing good OO codeBeyond design patterns and principles - writing good OO code
Beyond design patterns and principles - writing good OO code
 
Solid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven DesignSolid principles, Design Patterns, and Domain Driven Design
Solid principles, Design Patterns, and Domain Driven Design
 
Go-jek's Go-Food Chatbot
Go-jek's Go-Food ChatbotGo-jek's Go-Food Chatbot
Go-jek's Go-Food Chatbot
 
Domain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVCDomain-Driven Design with ASP.NET MVC
Domain-Driven Design with ASP.NET MVC
 
Implementing DDD with C#
Implementing DDD with C#Implementing DDD with C#
Implementing DDD with C#
 
Domain-driven design - tactical patterns
Domain-driven design - tactical patternsDomain-driven design - tactical patterns
Domain-driven design - tactical patterns
 
Architecture Principles CodeStock
Architecture Principles CodeStock Architecture Principles CodeStock
Architecture Principles CodeStock
 
Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?Why Domain-Driven Design and Reactive Programming?
Why Domain-Driven Design and Reactive Programming?
 
2011 iska - tim m - domain driven design
2011   iska - tim m - domain driven design2011   iska - tim m - domain driven design
2011 iska - tim m - domain driven design
 
Automation of functional tests using JMeter Part II (in Polish)
Automation of functional tests using JMeter Part II (in Polish)Automation of functional tests using JMeter Part II (in Polish)
Automation of functional tests using JMeter Part II (in Polish)
 
Domain Driven Design Quickly
Domain Driven Design QuicklyDomain Driven Design Quickly
Domain Driven Design Quickly
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
 

Similar to Beyond the Blue Book: 43 Patterns for Inspired DDD Modeling

Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Alberto Brandolini
 
Building Large Sustainable Apps
Building Large Sustainable AppsBuilding Large Sustainable Apps
Building Large Sustainable AppsBuğra Oral
 
Finding balance of DDD while your application grows
Finding balance of DDD while your application growsFinding balance of DDD while your application grows
Finding balance of DDD while your application growsCarolina Karklis
 
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...Cyrille Martraire
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLCAbdul Karim
 
Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...
Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...
Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...Mozaic Works
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introductionwojtek_s
 
WEBASSEMBLY - What's the right thing to write? -
WEBASSEMBLY - What's the right thing to write? -WEBASSEMBLY - What's the right thing to write? -
WEBASSEMBLY - What's the right thing to write? -Shin Yoshida
 
Domain Modeling towards First Principles
Domain Modeling towards First PrinciplesDomain Modeling towards First Principles
Domain Modeling towards First PrinciplesCyrille Martraire
 
.NET Architecture for Enterprises
.NET Architecture for Enterprises.NET Architecture for Enterprises
.NET Architecture for EnterprisesWade Wegner
 
Sam George (Cisco Systems): Augmented Reality Solution for Hardware Product D...
Sam George (Cisco Systems): Augmented Reality Solution for Hardware Product D...Sam George (Cisco Systems): Augmented Reality Solution for Hardware Product D...
Sam George (Cisco Systems): Augmented Reality Solution for Hardware Product D...AugmentedWorldExpo
 
JustEnoughDevOpsForDataScientists
JustEnoughDevOpsForDataScientistsJustEnoughDevOpsForDataScientists
JustEnoughDevOpsForDataScientistsAnya Bida
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven DevelopmentNETUserGroupBern
 
S doherty counting_dragons_dita-reuse
S doherty counting_dragons_dita-reuseS doherty counting_dragons_dita-reuse
S doherty counting_dragons_dita-reuseStan Doherty
 
Beyond usability
Beyond usability Beyond usability
Beyond usability jameguilin
 
Salesforce Coding techniques that keep your admins happy (DF13)
Salesforce Coding techniques that keep your admins happy (DF13)Salesforce Coding techniques that keep your admins happy (DF13)
Salesforce Coding techniques that keep your admins happy (DF13)Roy Gilad
 
Managing Creativity
Managing CreativityManaging Creativity
Managing Creativitykamaelian
 

Similar to Beyond the Blue Book: 43 Patterns for Inspired DDD Modeling (20)

Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
Loosely Coupled Complexity - Unleash the power of your Domain Model with Comm...
 
Building Large Sustainable Apps
Building Large Sustainable AppsBuilding Large Sustainable Apps
Building Large Sustainable Apps
 
50.000 orange stickies later
50.000 orange stickies later50.000 orange stickies later
50.000 orange stickies later
 
Finding balance of DDD while your application grows
Finding balance of DDD while your application growsFinding balance of DDD while your application grows
Finding balance of DDD while your application grows
 
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
Living Documentation (NCrafts Paris 2015, DDDx London 2015, BDX.io 2015, Code...
 
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design  in Real Life SDLCHow to Implement Domain Driven Design  in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
 
Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...
Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...
Cyrille Martraire: Living Documentation Jumpstart at I T.A.K.E. Unconference ...
 
Domain Driven Design Introduction
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
 
WEBASSEMBLY - What's the right thing to write? -
WEBASSEMBLY - What's the right thing to write? -WEBASSEMBLY - What's the right thing to write? -
WEBASSEMBLY - What's the right thing to write? -
 
Domain Modeling towards First Principles
Domain Modeling towards First PrinciplesDomain Modeling towards First Principles
Domain Modeling towards First Principles
 
.NET Architecture for Enterprises
.NET Architecture for Enterprises.NET Architecture for Enterprises
.NET Architecture for Enterprises
 
Sam George (Cisco Systems): Augmented Reality Solution for Hardware Product D...
Sam George (Cisco Systems): Augmented Reality Solution for Hardware Product D...Sam George (Cisco Systems): Augmented Reality Solution for Hardware Product D...
Sam George (Cisco Systems): Augmented Reality Solution for Hardware Product D...
 
JustEnoughDevOpsForDataScientists
JustEnoughDevOpsForDataScientistsJustEnoughDevOpsForDataScientists
JustEnoughDevOpsForDataScientists
 
Behavior Driven Development
Behavior Driven DevelopmentBehavior Driven Development
Behavior Driven Development
 
S doherty counting_dragons_dita-reuse
S doherty counting_dragons_dita-reuseS doherty counting_dragons_dita-reuse
S doherty counting_dragons_dita-reuse
 
Beyond usability
Beyond usability Beyond usability
Beyond usability
 
Into the domain
Into the domainInto the domain
Into the domain
 
Michael Kowalski
Michael KowalskiMichael Kowalski
Michael Kowalski
 
Salesforce Coding techniques that keep your admins happy (DF13)
Salesforce Coding techniques that keep your admins happy (DF13)Salesforce Coding techniques that keep your admins happy (DF13)
Salesforce Coding techniques that keep your admins happy (DF13)
 
Managing Creativity
Managing CreativityManaging Creativity
Managing Creativity
 

More from Cyrille Martraire

Domain modeling for Digital Transformations (FlowCon Paris 2019 edition)
Domain modeling for Digital Transformations (FlowCon Paris 2019 edition)Domain modeling for Digital Transformations (FlowCon Paris 2019 edition)
Domain modeling for Digital Transformations (FlowCon Paris 2019 edition)Cyrille Martraire
 
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft ForeverSunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft ForeverCyrille Martraire
 
Hexagonal at Scale, with DDD and microservices! - Voxxed Days microservices 2...
Hexagonal at Scale, with DDD and microservices! - Voxxed Days microservices 2...Hexagonal at Scale, with DDD and microservices! - Voxxed Days microservices 2...
Hexagonal at Scale, with DDD and microservices! - Voxxed Days microservices 2...Cyrille Martraire
 
Bounded Context - DDD Europe Foundation Track
Bounded Context - DDD Europe Foundation TrackBounded Context - DDD Europe Foundation Track
Bounded Context - DDD Europe Foundation TrackCyrille Martraire
 
DDD beyond the infamous repository pattern - GeeCon Prague 2018
DDD beyond the infamous repository pattern - GeeCon Prague 2018DDD beyond the infamous repository pattern - GeeCon Prague 2018
DDD beyond the infamous repository pattern - GeeCon Prague 2018Cyrille Martraire
 
Les effets inattendus du passage en Features Teams à grande échelle -ScrumDay...
Les effets inattendus du passage en Features Teams à grande échelle -ScrumDay...Les effets inattendus du passage en Features Teams à grande échelle -ScrumDay...
Les effets inattendus du passage en Features Teams à grande échelle -ScrumDay...Cyrille Martraire
 
Refactor your Specs - 2017 Edition
Refactor your Specs - 2017 EditionRefactor your Specs - 2017 Edition
Refactor your Specs - 2017 EditionCyrille Martraire
 
Interviewing Domain Experts - Heuristics From the Trenches (DDD Europe 2016 M...
Interviewing Domain Experts - Heuristics From the Trenches (DDD Europe 2016 M...Interviewing Domain Experts - Heuristics From the Trenches (DDD Europe 2016 M...
Interviewing Domain Experts - Heuristics From the Trenches (DDD Europe 2016 M...Cyrille Martraire
 
Legacy Code: Evolve or Rewrite?
Legacy Code: Evolve or Rewrite?Legacy Code: Evolve or Rewrite?
Legacy Code: Evolve or Rewrite?Cyrille Martraire
 
Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014Cyrille Martraire
 
Refactor your specs! Øredev 2013
Refactor your specs! Øredev 2013Refactor your specs! Øredev 2013
Refactor your specs! Øredev 2013Cyrille Martraire
 
DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)Cyrille Martraire
 
I T.A.K.E. talk: "When DDD meets FP, good things happen"
I T.A.K.E. talk: "When DDD meets FP, good things happen"I T.A.K.E. talk: "When DDD meets FP, good things happen"
I T.A.K.E. talk: "When DDD meets FP, good things happen"Cyrille Martraire
 
Domain-Driven Design in legacy application
Domain-Driven Design in legacy applicationDomain-Driven Design in legacy application
Domain-Driven Design in legacy applicationCyrille Martraire
 
Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...
Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...
Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...Cyrille Martraire
 

More from Cyrille Martraire (17)

Domain modeling for Digital Transformations (FlowCon Paris 2019 edition)
Domain modeling for Digital Transformations (FlowCon Paris 2019 edition)Domain modeling for Digital Transformations (FlowCon Paris 2019 edition)
Domain modeling for Digital Transformations (FlowCon Paris 2019 edition)
 
Sunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft ForeverSunny Tech 2019 - Craft Forever
Sunny Tech 2019 - Craft Forever
 
Hexagonal at Scale, with DDD and microservices! - Voxxed Days microservices 2...
Hexagonal at Scale, with DDD and microservices! - Voxxed Days microservices 2...Hexagonal at Scale, with DDD and microservices! - Voxxed Days microservices 2...
Hexagonal at Scale, with DDD and microservices! - Voxxed Days microservices 2...
 
Bounded Context - DDD Europe Foundation Track
Bounded Context - DDD Europe Foundation TrackBounded Context - DDD Europe Foundation Track
Bounded Context - DDD Europe Foundation Track
 
DDD beyond the infamous repository pattern - GeeCon Prague 2018
DDD beyond the infamous repository pattern - GeeCon Prague 2018DDD beyond the infamous repository pattern - GeeCon Prague 2018
DDD beyond the infamous repository pattern - GeeCon Prague 2018
 
DDD for real
DDD for realDDD for real
DDD for real
 
Les effets inattendus du passage en Features Teams à grande échelle -ScrumDay...
Les effets inattendus du passage en Features Teams à grande échelle -ScrumDay...Les effets inattendus du passage en Features Teams à grande échelle -ScrumDay...
Les effets inattendus du passage en Features Teams à grande échelle -ScrumDay...
 
Refactor your Specs - 2017 Edition
Refactor your Specs - 2017 EditionRefactor your Specs - 2017 Edition
Refactor your Specs - 2017 Edition
 
Interviewing Domain Experts - Heuristics From the Trenches (DDD Europe 2016 M...
Interviewing Domain Experts - Heuristics From the Trenches (DDD Europe 2016 M...Interviewing Domain Experts - Heuristics From the Trenches (DDD Europe 2016 M...
Interviewing Domain Experts - Heuristics From the Trenches (DDD Europe 2016 M...
 
Legacy Code: Evolve or Rewrite?
Legacy Code: Evolve or Rewrite?Legacy Code: Evolve or Rewrite?
Legacy Code: Evolve or Rewrite?
 
Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014Ur Domain Haz Monoids DDDx NYC 2014
Ur Domain Haz Monoids DDDx NYC 2014
 
Ur Domain Haz Monoids
Ur Domain Haz MonoidsUr Domain Haz Monoids
Ur Domain Haz Monoids
 
Refactor your specs! Øredev 2013
Refactor your specs! Øredev 2013Refactor your specs! Øredev 2013
Refactor your specs! Øredev 2013
 
DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)DDD session BrownBagLunch (FR)
DDD session BrownBagLunch (FR)
 
I T.A.K.E. talk: "When DDD meets FP, good things happen"
I T.A.K.E. talk: "When DDD meets FP, good things happen"I T.A.K.E. talk: "When DDD meets FP, good things happen"
I T.A.K.E. talk: "When DDD meets FP, good things happen"
 
Domain-Driven Design in legacy application
Domain-Driven Design in legacy applicationDomain-Driven Design in legacy application
Domain-Driven Design in legacy application
 
Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...
Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...
Tour d'horizon de Domain-Driven Design Avril 2012 autour d'un retour d'expéri...
 

Recently uploaded

Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 

Recently uploaded (20)

Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 

Beyond the Blue Book: 43 Patterns for Inspired DDD Modeling