SlideShare a Scribd company logo
1 of 139
Download to read offline
7 YEARS OF DDD:
TACKLING
COMPLEXITY

IN LARGE SCALE
MARKETING SYSTEMS
Vladik Khononov
IAF Malam Team MSN-IL Cellcom Internovus
Twitter: @vladikk



Blog: vladikk.com
Vladik Khononov
IAF Malam Team MSN-IL Cellcom Internovus
Twitter: @vladikk



Blog: vladikk.com
AGENDA
PART 1

5 BOUNDED
CONTEXTS
PART 2
PRACTICAL
ADVICE
YAY!!!
Your Product Marketing

Strategy
Creatives Campaigns Sales

Agents
OptimizationProfits
THE FIRST
BOUNDED CONTEXT
01
VER 1.0
Media Buying
Creatives Catalog
Campaign Management
🤔
Very nice!
Aggregates everywhere!!!
Aggregates everywhere!!!
Creative
Agency
Advertiser
Publisher
Website
Placement
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Campaign
The Bounded Context
Creative
Agency
Advertiser
Publisher
Website
Placement
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Domain Model
Service / Application Layer
Presentation
Infrastructure
Anemic!
Behaviour
Imperfect architecture
“QA is for cowards”
BUT IT WORKED!
UBIQUITOUS LANGUAGE
Domain ExpertSoftware Developer
Has no experience in online marketing
Nice people!
Smooth communication
Strong grasp of the business domain
Working software
Aggressive time to market
UbiquitousLanguage Anemic Domain Model
Leads Sales AgentsAds
Leads CRM Categorize Desk
Desk
Desk
Sales Agents
Sales Agents
Sales Agents
Clients’ Systems
Lead qualification
Agent qualification
Agents’ commissions
THE CRM
BOUNDED CONTEXT
02
UbiquitousLanguage Anemic Domain Model
Creative
Agency
Publisher
Website
Advertiser
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Group
Desk
Qualification
Assessment
Organization Unit
Assignment
Rank
Message
On-site Activity
Placement Visit Brand
Marketing Lead
CRM Lead
Marketing Campaign CRM Campaign
Domain ExpertSoftware Developer
…. Lead ….
…. Campaign…
BOUNDED CONTEXTS
PROTECT THE LANGUAGE
AGGREGATES PROTECT
CONSISTENCY OF DATA
Creative
Agency
Publisher
Website
Advertiser
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Group
Desk
Qualification
Assessment
Organization Unit
Assignment
Rank
Message
On-site Activity
Placement Visit Brand
Marketing Lead
CRM Lead
Marketing Campaign CRM Campaign
Creative
Agency
Publisher
Website
Advertiser
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Placement Visit
Lead
Campaign
Marketing
Group
Desk
Qualification
Assessment
Organization Unit
Assignment
Rank
Message
On-site Activity
Brand
Lead
Campaign
CRM
Aggregates will:

• Protect transactional boundaries

• Encompass business logic and invariants
Domain
Service / Application Layer
Presentation
Infrastructure
Aggregates will:

• Protect transactional boundaries

• Encompass business logic and invariants
Domain
Service / Application Layer
Presentation
Infrastructure
Domain
Service / Application Layer
Stored
procedures???
Group
Desk
Qualification
Assessment
Organization Unit
Assignment
Rank
Message
On-site Activity
Brand
Lead
Campaign
Lead
L e a d
CRM Team DBA Team
Inconsistent models
No shared understanding
Duplication of knowledge
Went out of sync quickly
NIGHTMARE
Wasn’t delivered on time
Production issues
Data corruption
Thrown away and reimplemented
UbiquitousLanguage
Domain Model
BoundedContexts
Protect w/ Implement as
UbiquitousLanguage
Domain Model
BoundedContexts
Protect w/ Implement as
…Dude, where are Sub-Domains?
Not all of a large system will be well designed
“Eric Evans
THE CRUNCHERS
BOUNDED CONTEXT
03
Marketing CRM Analysis
Customer
Events
Marketing CRM
Marketing
CRM
Analysis
Customer
Events
Event
Crunchers
Competitive advantage? - No
Off-the-shelve solution? - No
=> Supporting sub-domain
Layered Architecture
Transaction Script
Worked
…. for a while
Customer
Events
Event
Crunchers
Marketing
CRM
Analysis
Flag Flag
Calculated fields
Marketing
CRM
Analysis
Customer
Events
Event
Crunchers
Customer
Events
Event Crunchers
(BBOM)
CRM
Marketing
Analysis
Customer
Events
Event
Crunchers
(Event Sourced)
CRM
Marketing
Analysis
THE BONUSES
BOUNDED CONTEXT
04
Sales Commissions Reports
Competitive advantage? - No
Off-the-shelve solution? - No
=> Supporting sub-domain
Active Record
Service / Application Layer
Presentation
Infrastructure
Sales Commissions Reports
Let’s try different percentages
What if the percentage could be a function of
a price?
No, what if the percentage is a function of
number of sales?
No, no, the percentage will be a function
both of number of sales and sale amount
And another upgrade if there are more than Y
sales per week!
But we will upgrade the percentage if there
are more than X sales per month!
Active Record
Service / Application Layer
Presentation
Infrastructure
BIG BALL OF MUD
Active Record
Service / Application Layer
Presentation
Infrastructure
Transaction Script
Service / Application Layer
Presentation
Infrastructure
Event Crunchers Bonuses
Active Record
Service / Application Layer
Presentation
Infrastructure
Transaction Script
Service / Application Layer
Presentation
Infrastructure
Event Crunchers Bonuses
UbiquitousLanguage
Event Sourced Domain Model
Service / Application Layer
Presentation
Infrastructure
Event Sourced Domain Model
Service / Application Layer
Presentation
Infrastructure
Event Crunchers Bonuses
UbiquitousLanguage
UbiquitousLanguage
Core
BoundedContexts
Protect by

decomposing to
Identify
Domains
Domain Model
Supporting
Generic
AR / TS
Adopt
Implement as
THE MARKETING HUB
BOUNDED CONTEXT
05
Leads Marketing Hub
Client
Client
Client
Competitive advantage? - Yes
=> Core Domain
Event Sourced Domain Model
CQRS
Microservices
Micro

Service
Micro

Service
Micro

Service
Micro

Service
Aggregate
Aggregate
Aggregate
Aggregate
Aggregate
Aggregate
Aggregate
Aggregate
Event
Sourced

Aggregate
Aggregate
Aggregate
Aggregate
Aggregate
Event
Sourced

Aggregate
Event Sourced Domain Model
CQRS
Microservices
Aggregate
Aggregate
Aggregate
Aggregate
Event
Sourced

Aggregate
TECHNICAL
COMPLEXITY
BUSINESS
COMPLEXITY>
Aggregate
Aggregate
Aggregate
Aggregate
Event
Sourced

Aggregate
Marketing
Bonuses
U D
CRM
U
D
Marketing

Hub
U U
D
D
Event
Crunchers
U
D
U D
WHAT

WE HAVE
L E A R N E D
UBIQUITOUS
LANGUAGE
01
Ubiquitous Language:
The Core Domain of Domain-Driven Design
UBIQUITOUS
LANGUAGE
DOCUMENTS
TESTS
JIRA
>
Marketing
Ubiquitous Language
Business goals achieved
CRM
Ubiquitous Language
Production issues
Long and painful refactoring
Event Crunchers
Ubiquitous Language
Big ball of mud
Bonuses
Ubiquitous Language
Refactored in time
Invest in the Ubiquitous Language early on.
Cheap!
You don’t need a budget for a Ubiquitous Language
DOMAIN
TYPES
02
Core
Supporting
Generic
Generic Domain Adopt / Buy
Supporting Domain Active Record / Transaction Script
Core Domain Domain Model / Event Sourcing
COMPANIES CHANGE, EVOLVE, REINVENT THEMSELVES
DOMAINS' TYPES CAN CHANGE ACCORDINGLY
SUPPORTING ➤ CORE
• Event Crunchers
• Bonuses
SUPPORTING ➤ GENERIC
• Creative Catalog
CORE ➤ GENERIC
• Lead Evaluation System
CORE ➤ SUPPORTING
• Marketing Hub
GENERIC ➤ CORE
• AWS
Generic Domain Adopt / Buy
Supporting Domain Active Record / Transaction Script
Core Domain Domain Model / Event Sourcing
Generic DomainAdopt / Buy
Supporting DomainActive Record / Transaction Script
Core DomainDomain Model / Event Sourcing
Less waste
Dialog with the business
IMPLEMENTATION DESIGN ➤ DOMAIN TYPE
• Questionable competitive edge?
• Accidental “business” complexity?
• Unexpected competitive edge?
BUSINESS COMPLEXITY ≠ DOMAIN TYPE?
Generic DomainAdopt / Buy
Supporting DomainActive Record / Transaction Script
Core DomainDomain Model / Event Sourcing
IMPLEMENTATION DESIGN ➤ DOMAIN TYPE
IMPLEMENTATION
STRATEGIES
03
How to Model the Business Logic?
Transaction Script
Active Record
Domain Model
Event Sourced Domain Model
MONEY? DEEP ANALYTICS? AUDIT LOG?
Event Sourced Domain Model
COMPLEX BUSINESS LOGIC?
Domain Model
COMPLEX DATA STRUCTURES?
Active Record
SIMPLE LOGIC, SIMPLE DATA STRUCTURES?
Transaction Script
MAPPING ARCHITECTURAL PATTERNS
Event Sourced Domain Model ➤ CQRS
Domain Model ➤ Hexagonal Architecture
Active Record ➤ Layered Architecture
Transaction Script ➤ “Keep it simple” Architecture
MAPPING ARCHITECTURAL PATTERNS
Event Sourced Domain Model ➤ CQRS
Domain Model ➤ Hexagonal Architecture
Active Record ➤ Layered Architecture
Transaction Script ➤ “Keep it simple” Architecture
Transaction Script
Active Record
Domain Model
Event Sourced Domain Model
PAIN?
BUSINESS CHANGED?
DOMAIN TYPE CHANGED?
REVISE IMPLEMENTATION STRATEGY?
➤
Transaction Script
Active Record
Domain Model
Event Sourced Domain Model
CQRS
04
Event Sourcing ➤ CQRS
EVENT SOURCING
A WAY OF MODELING BUSINESS DOMAINS
CQRS
ARCHITECTURAL PATTERN FOR REPRESENTING
THE SAME DATA IN DIFFERENT MODELS
Transaction Script
Active Record
Domain Model
}
Can benefit from CQRS
and
State-Based Projections
05
BOUNDED
CONTEXTS
Creative
Agency
Publisher
Website
Advertiser
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Placement Visit
Lead
Campaign
Marketing
Group
Desk
Qualification
Assessment
Organization Unit
Assignment
Rank
Message
On-site Activity
Brand
Lead
Campaign
CRM
LINGUISTIC BOUNDARIES
Bonuses
Event
Crunchers
DOMAIN-BASED BOUNDARIES
AGGREGATE-BASED BOUNDARIES
Aggregate
Aggregate
Aggregate
Aggregate
L e a d
SUICIDAL BOUNDARIES
Finding service boundaries is really damn hard…
There is no flowchart!
“Udi Dahan
THERE ARE GOING TO BE MISTAKES
ACCEPT IT, AND DON’T MAKE FATAL ONES
START WITH BIGGER BOUNDARIES
DECOMPOSE LATER, AS YOU GAIN KNOWLEDGE
THE LESS YOU KNOW ABOUT THE DOMAIN -
THE WIDER THE INITIAL BOUNDARIES ARE
Aggregate
Aggregate
Aggregate
Aggregate
Event
Sourced

Aggregate
Marketing
Creative
Agency
Publisher
Website
Advertiser
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Audience
Placement Visit
Lead
Campaign
Campaigns
Creative
Ad Type
Agency
Publisher
Website
Zone Type
ContractBudget Unit
Impression
Visit
Lead
Advertiser
Target MarketFunnel
Audience
Placement
Campaign
Creative Catalog
Publishers
Events
START WITH BIGGER BOUNDARIES
DECOMPOSE AS YOU GAIN DOMAIN KNOWLEDGE
1. Ubiquitous Language is not optional
2. Domain Types change. Embrace these changes
3. Learn the ins and outs of the four patterns of modeling business logic
4. Use CQRS to represent the same data in multiple models
5. Start with bigger boundaries, and divide as you gain domain knowledge
07
SUMMARY
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
Creative
Agency
Advertiser
Publisher
Website
Placement
Ad Zone
Ad Type
Target Market
Group
Zone Type
Funnel
Contract
Budget Unit
Campaign
Aggregates everywhere!!!
UbiquitousLanguage
BoundedContexts
Protect by

decomposing to
Design

Implementation
Core
Supporting
Generic
Domain Model
AR / TS
Adopt
Confirm w/

Business
Ubiquitous Language Everywhere!!!
P.S.
QUESTIONS?
THANK YOU!
@vladikk
http://vladikk.com

More Related Content

Similar to 7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)

7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...
7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...
7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...Codemotion
 
7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...
7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...
7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...Codemotion
 
Isv cloud business readiness assessment
Isv cloud business readiness assessmentIsv cloud business readiness assessment
Isv cloud business readiness assessmentMIS
 
Benchmark of ecommerce solutions (short version, english)
Benchmark of ecommerce solutions (short version, english)Benchmark of ecommerce solutions (short version, english)
Benchmark of ecommerce solutions (short version, english)Philippe Humeau
 
Adobe Business.pptx
Adobe Business.pptxAdobe Business.pptx
Adobe Business.pptxAnkush Kapil
 
AppDirect Business Case (MSP)
AppDirect Business Case (MSP)AppDirect Business Case (MSP)
AppDirect Business Case (MSP)Madeline Titcomb
 
Using AWS Marketplace to Reach Over 190,000 Customers (GPSMP203) - AWS re:Inv...
Using AWS Marketplace to Reach Over 190,000 Customers (GPSMP203) - AWS re:Inv...Using AWS Marketplace to Reach Over 190,000 Customers (GPSMP203) - AWS re:Inv...
Using AWS Marketplace to Reach Over 190,000 Customers (GPSMP203) - AWS re:Inv...Amazon Web Services
 
AppDirect Business Case (ISP)
AppDirect Business Case (ISP)AppDirect Business Case (ISP)
AppDirect Business Case (ISP)Madeline Titcomb
 
Benchmark of e-commerce solutions
Benchmark of e-commerce solutionsBenchmark of e-commerce solutions
Benchmark of e-commerce solutionsNBS System
 
Data Discovery and BI - Is there Really a Difference?
Data Discovery and BI - Is there Really a Difference?Data Discovery and BI - Is there Really a Difference?
Data Discovery and BI - Is there Really a Difference?Inside Analysis
 
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
 
iPuzzlebiz Presentation
iPuzzlebiz PresentationiPuzzlebiz Presentation
iPuzzlebiz Presentationipuzzlebiz
 
Costandopportunitycostofarchitecturalinitiatives 090311132631-phpapp01
Costandopportunitycostofarchitecturalinitiatives 090311132631-phpapp01Costandopportunitycostofarchitecturalinitiatives 090311132631-phpapp01
Costandopportunitycostofarchitecturalinitiatives 090311132631-phpapp01Tim Vibbert
 
2010.06.23 - How to succeed in surfing the Saas and Cloud Tsunami
2010.06.23  - How to succeed in surfing the Saas and Cloud Tsunami2010.06.23  - How to succeed in surfing the Saas and Cloud Tsunami
2010.06.23 - How to succeed in surfing the Saas and Cloud TsunamiClub Alliances
 
Emi fy22 commerce b2 b user group- june 2021
Emi fy22 commerce b2 b   user group- june 2021Emi fy22 commerce b2 b   user group- june 2021
Emi fy22 commerce b2 b user group- june 2021Raja Bipin Chandra ☁
 
unit iv Building on e commerce enterprise
 unit iv Building on e commerce enterprise unit iv Building on e commerce enterprise
unit iv Building on e commerce enterpriseArnav Chowdhury
 
Net suite+crm+++customer+presentation[1]
Net suite+crm+++customer+presentation[1]Net suite+crm+++customer+presentation[1]
Net suite+crm+++customer+presentation[1]Craig Beak
 
Demandbase-Uberflip-Hexagon-Slides.pdf
Demandbase-Uberflip-Hexagon-Slides.pdfDemandbase-Uberflip-Hexagon-Slides.pdf
Demandbase-Uberflip-Hexagon-Slides.pdfDemandbase
 
IEEE-SCCPresentation.290214544
IEEE-SCCPresentation.290214544IEEE-SCCPresentation.290214544
IEEE-SCCPresentation.290214544ypai
 

Similar to 7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018) (20)

7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...
7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...
7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...
 
7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...
7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...
7 Years of DDD: Tackling Complexity in Large-Scale Marketing Systems - Vladik...
 
Isv cloud business readiness assessment
Isv cloud business readiness assessmentIsv cloud business readiness assessment
Isv cloud business readiness assessment
 
Benchmark of ecommerce solutions (short version, english)
Benchmark of ecommerce solutions (short version, english)Benchmark of ecommerce solutions (short version, english)
Benchmark of ecommerce solutions (short version, english)
 
Adobe Business.pptx
Adobe Business.pptxAdobe Business.pptx
Adobe Business.pptx
 
AppDirect Business Case (MSP)
AppDirect Business Case (MSP)AppDirect Business Case (MSP)
AppDirect Business Case (MSP)
 
Using AWS Marketplace to Reach Over 190,000 Customers (GPSMP203) - AWS re:Inv...
Using AWS Marketplace to Reach Over 190,000 Customers (GPSMP203) - AWS re:Inv...Using AWS Marketplace to Reach Over 190,000 Customers (GPSMP203) - AWS re:Inv...
Using AWS Marketplace to Reach Over 190,000 Customers (GPSMP203) - AWS re:Inv...
 
AppDirect Business Case (ISP)
AppDirect Business Case (ISP)AppDirect Business Case (ISP)
AppDirect Business Case (ISP)
 
Benchmark of e-commerce solutions
Benchmark of e-commerce solutionsBenchmark of e-commerce solutions
Benchmark of e-commerce solutions
 
Data Discovery and BI - Is there Really a Difference?
Data Discovery and BI - Is there Really a Difference?Data Discovery and BI - Is there Really a Difference?
Data Discovery and BI - Is there Really a Difference?
 
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?
 
iPuzzlebiz Presentation
iPuzzlebiz PresentationiPuzzlebiz Presentation
iPuzzlebiz Presentation
 
Costandopportunitycostofarchitecturalinitiatives 090311132631-phpapp01
Costandopportunitycostofarchitecturalinitiatives 090311132631-phpapp01Costandopportunitycostofarchitecturalinitiatives 090311132631-phpapp01
Costandopportunitycostofarchitecturalinitiatives 090311132631-phpapp01
 
2010.06.23 - How to succeed in surfing the Saas and Cloud Tsunami
2010.06.23  - How to succeed in surfing the Saas and Cloud Tsunami2010.06.23  - How to succeed in surfing the Saas and Cloud Tsunami
2010.06.23 - How to succeed in surfing the Saas and Cloud Tsunami
 
Emi fy22 commerce b2 b user group- june 2021
Emi fy22 commerce b2 b   user group- june 2021Emi fy22 commerce b2 b   user group- june 2021
Emi fy22 commerce b2 b user group- june 2021
 
Agora E245 final presentation
Agora E245 final presentationAgora E245 final presentation
Agora E245 final presentation
 
unit iv Building on e commerce enterprise
 unit iv Building on e commerce enterprise unit iv Building on e commerce enterprise
unit iv Building on e commerce enterprise
 
Net suite+crm+++customer+presentation[1]
Net suite+crm+++customer+presentation[1]Net suite+crm+++customer+presentation[1]
Net suite+crm+++customer+presentation[1]
 
Demandbase-Uberflip-Hexagon-Slides.pdf
Demandbase-Uberflip-Hexagon-Slides.pdfDemandbase-Uberflip-Hexagon-Slides.pdf
Demandbase-Uberflip-Hexagon-Slides.pdf
 
IEEE-SCCPresentation.290214544
IEEE-SCCPresentation.290214544IEEE-SCCPresentation.290214544
IEEE-SCCPresentation.290214544
 

More from Vladik Khononov

How to Tame TDD - ISTA 2017
How to Tame TDD - ISTA 2017How to Tame TDD - ISTA 2017
How to Tame TDD - ISTA 2017Vladik Khononov
 
ISTA 2016: Event Sourcing
ISTA 2016: Event SourcingISTA 2016: Event Sourcing
ISTA 2016: Event SourcingVladik Khononov
 
Mind Your Business. And Its Logic
Mind Your Business. And Its LogicMind Your Business. And Its Logic
Mind Your Business. And Its LogicVladik Khononov
 
Introduction to Event Sourcing and CQRS (IASA-IL)
Introduction to Event Sourcing and CQRS (IASA-IL)Introduction to Event Sourcing and CQRS (IASA-IL)
Introduction to Event Sourcing and CQRS (IASA-IL)Vladik Khononov
 
Introduction to Event Sourcing and CQRS
Introduction to Event Sourcing and CQRSIntroduction to Event Sourcing and CQRS
Introduction to Event Sourcing and CQRSVladik Khononov
 
Introduction to CQRS and DDDD
Introduction to CQRS and DDDDIntroduction to CQRS and DDDD
Introduction to CQRS and DDDDVladik Khononov
 
Internal Project: Under the Hood
Internal Project: Under the HoodInternal Project: Under the Hood
Internal Project: Under the HoodVladik Khononov
 

More from Vladik Khononov (8)

How to Tame TDD - ISTA 2017
How to Tame TDD - ISTA 2017How to Tame TDD - ISTA 2017
How to Tame TDD - ISTA 2017
 
ISTA 2016: Event Sourcing
ISTA 2016: Event SourcingISTA 2016: Event Sourcing
ISTA 2016: Event Sourcing
 
Mind Your Business. And Its Logic
Mind Your Business. And Its LogicMind Your Business. And Its Logic
Mind Your Business. And Its Logic
 
Introduction to Event Sourcing and CQRS (IASA-IL)
Introduction to Event Sourcing and CQRS (IASA-IL)Introduction to Event Sourcing and CQRS (IASA-IL)
Introduction to Event Sourcing and CQRS (IASA-IL)
 
Introduction to Event Sourcing and CQRS
Introduction to Event Sourcing and CQRSIntroduction to Event Sourcing and CQRS
Introduction to Event Sourcing and CQRS
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
Introduction to CQRS and DDDD
Introduction to CQRS and DDDDIntroduction to CQRS and DDDD
Introduction to CQRS and DDDD
 
Internal Project: Under the Hood
Internal Project: Under the HoodInternal Project: Under the Hood
Internal Project: Under the Hood
 

Recently uploaded

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Recently uploaded (20)

Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

7 Years of DDD: Tackling Complexity in Marketing Systems (DDD Europe 2018)