Soumettre la recherche
Mettre en ligne
Domain Driven Design and Hexagonal Architecture
•
9 j'aime
•
4,680 vues
Crishantha Nanayakkara
Suivre
Auxenta Tech Talk
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 38
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Refactoring for Domain Driven Design
Refactoring for Domain Driven Design
David Berliner
Domain Driven Design 101
Domain Driven Design 101
Richard Dingwall
Domain Driven Design (DDD)
Domain Driven Design (DDD)
Tom Kocjan
Domain Driven Design
Domain Driven Design
Ryan Riley
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to Hero
Fabrício Rissetto
DDD - 1 - A gentle introduction to Domain Driven Design.pdf
DDD - 1 - A gentle introduction to Domain Driven Design.pdf
Eleonora Ciceri
Domain-Driven Design
Domain-Driven Design
Andriy Buday
Introduction to DDD
Introduction to DDD
Eduards Sizovs
Recommandé
Refactoring for Domain Driven Design
Refactoring for Domain Driven Design
David Berliner
Domain Driven Design 101
Domain Driven Design 101
Richard Dingwall
Domain Driven Design (DDD)
Domain Driven Design (DDD)
Tom Kocjan
Domain Driven Design
Domain Driven Design
Ryan Riley
Domain Driven Design: Zero to Hero
Domain Driven Design: Zero to Hero
Fabrício Rissetto
DDD - 1 - A gentle introduction to Domain Driven Design.pdf
DDD - 1 - A gentle introduction to Domain Driven Design.pdf
Eleonora Ciceri
Domain-Driven Design
Domain-Driven Design
Andriy Buday
Introduction to DDD
Introduction to DDD
Eduards Sizovs
DevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDD
Gregory Boissinot
Domain Driven Design
Domain Driven Design
Nader Albert
Applying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain Models
Alexander van Trijffel
Domain Driven Design
Domain Driven Design
Harsh Jegadeesan
Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) Presentation
Oğuzhan Soykan
Domain Driven Design Introduction
Domain Driven Design Introduction
wojtek_s
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
Radosław Maziarka
Domain Driven Design Quickly
Domain Driven Design Quickly
Mariam Hakobyan
Hexagonal Architecture.pdf
Hexagonal Architecture.pdf
VladimirRadzivil
Domain driven design
Domain driven design
Mustafa Dağdelen
Domain driven design
Domain driven design
its_skm
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
NETFest
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
Nicola Costantino
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
Abdul Karim
Domain driven design
Domain driven design
tatyaso
Domain driven design
Domain driven design
Amit Mukherjee
Hexagonal architecture: how, why and when
Hexagonal architecture: how, why and when
Xoubaman
Domain Driven Design
Domain Driven Design
Araf Karsh Hamid
Implementing DDD with C#
Implementing DDD with C#
Pascal Laurin
DDD - 2 - Domain Driven Design: Tactical design.pdf
DDD - 2 - Domain Driven Design: Tactical design.pdf
Eleonora Ciceri
Domain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic Approach
Panagiotis Papaioannou
DOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGN
Mohammed Fazuluddin
Contenu connexe
Tendances
DevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDD
Gregory Boissinot
Domain Driven Design
Domain Driven Design
Nader Albert
Applying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain Models
Alexander van Trijffel
Domain Driven Design
Domain Driven Design
Harsh Jegadeesan
Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) Presentation
Oğuzhan Soykan
Domain Driven Design Introduction
Domain Driven Design Introduction
wojtek_s
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
Radosław Maziarka
Domain Driven Design Quickly
Domain Driven Design Quickly
Mariam Hakobyan
Hexagonal Architecture.pdf
Hexagonal Architecture.pdf
VladimirRadzivil
Domain driven design
Domain driven design
Mustafa Dağdelen
Domain driven design
Domain driven design
its_skm
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
NETFest
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
Nicola Costantino
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
Abdul Karim
Domain driven design
Domain driven design
tatyaso
Domain driven design
Domain driven design
Amit Mukherjee
Hexagonal architecture: how, why and when
Hexagonal architecture: how, why and when
Xoubaman
Domain Driven Design
Domain Driven Design
Araf Karsh Hamid
Implementing DDD with C#
Implementing DDD with C#
Pascal Laurin
DDD - 2 - Domain Driven Design: Tactical design.pdf
DDD - 2 - Domain Driven Design: Tactical design.pdf
Eleonora Ciceri
Tendances
(20)
DevDay2017 ESGI Essential DDD
DevDay2017 ESGI Essential DDD
Domain Driven Design
Domain Driven Design
Applying Domain-Driven Design to craft Rich Domain Models
Applying Domain-Driven Design to craft Rich Domain Models
Domain Driven Design
Domain Driven Design
Domain Driven Design(DDD) Presentation
Domain Driven Design(DDD) Presentation
Domain Driven Design Introduction
Domain Driven Design Introduction
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design - Strategic Patterns and Microservices
Domain Driven Design Quickly
Domain Driven Design Quickly
Hexagonal Architecture.pdf
Hexagonal Architecture.pdf
Domain driven design
Domain driven design
Domain driven design
Domain driven design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
Domain Driven Design (Ultra) Distilled
Domain Driven Design (Ultra) Distilled
How to Implement Domain Driven Design in Real Life SDLC
How to Implement Domain Driven Design in Real Life SDLC
Domain driven design
Domain driven design
Domain driven design
Domain driven design
Hexagonal architecture: how, why and when
Hexagonal architecture: how, why and when
Domain Driven Design
Domain Driven Design
Implementing DDD with C#
Implementing DDD with C#
DDD - 2 - Domain Driven Design: Tactical design.pdf
DDD - 2 - Domain Driven Design: Tactical design.pdf
Similaire à Domain Driven Design and Hexagonal Architecture
Domain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic Approach
Panagiotis Papaioannou
DOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGN
Mohammed Fazuluddin
DDD knowledge sharing
DDD knowledge sharing
Md. Sadhan Sarker
Domain Driven Design - Distillation - Chapter 15
Domain Driven Design - Distillation - Chapter 15
Mark Windholtz
Domain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic Approach
Panagiotis Papaioannou
2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it
Mark Windholtz
Planning Your Career: The Journey
Planning Your Career: The Journey
Krishnakanth Govindaraju
Code & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven Design
Frank Levering
Model Driven Architectures
Model Driven Architectures
Lalit Kale
Feedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptx
Guillaume Saint Etienne
From idea to implementation
From idea to implementation
Eikos Partners
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
IT Arena
New businessproposal ver5
New businessproposal ver5
MPLLC
Custom Machine Learning Recipes for the Enterprise
Custom Machine Learning Recipes for the Enterprise
Sri Ambati
The Dual-Track Agile UX Process at Dell EMC
The Dual-Track Agile UX Process at Dell EMC
uxpin
Ids johanes alexander
Ids johanes alexander
CodePolitan
Domain Driven Design for Mere Mortals
Domain Driven Design for Mere Mortals
Justin Holmes
Mahesh_Sinha
Mahesh_Sinha
Mahesh Sinha
Sushma Singh-Resume
Sushma Singh-Resume
Sushma singh
Idiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRS
Andrea Saltarello
Similaire à Domain Driven Design and Hexagonal Architecture
(20)
Domain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic Approach
DOMAIN DRIVER DESIGN
DOMAIN DRIVER DESIGN
DDD knowledge sharing
DDD knowledge sharing
Domain Driven Design - Distillation - Chapter 15
Domain Driven Design - Distillation - Chapter 15
Domain Driven Design: Made Easy employing Systemic Approach
Domain Driven Design: Made Easy employing Systemic Approach
2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it
Planning Your Career: The Journey
Planning Your Career: The Journey
Code & Cannoli - Domain Driven Design
Code & Cannoli - Domain Driven Design
Model Driven Architectures
Model Driven Architectures
Feedback on DDD Europe - short -event storming.pptx
Feedback on DDD Europe - short -event storming.pptx
From idea to implementation
From idea to implementation
Domain-Driven Design (Artur Trosin Product Stream)
Domain-Driven Design (Artur Trosin Product Stream)
New businessproposal ver5
New businessproposal ver5
Custom Machine Learning Recipes for the Enterprise
Custom Machine Learning Recipes for the Enterprise
The Dual-Track Agile UX Process at Dell EMC
The Dual-Track Agile UX Process at Dell EMC
Ids johanes alexander
Ids johanes alexander
Domain Driven Design for Mere Mortals
Domain Driven Design for Mere Mortals
Mahesh_Sinha
Mahesh_Sinha
Sushma Singh-Resume
Sushma Singh-Resume
Idiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRS
Plus de Crishantha Nanayakkara
Sri Lanka Government Enterprise Architecture
Sri Lanka Government Enterprise Architecture
Crishantha Nanayakkara
Application Deployement Strategies
Application Deployement Strategies
Crishantha Nanayakkara
Azure for AWS Developers
Azure for AWS Developers
Crishantha Nanayakkara
Enterprise Integration in Cloud Native Microservices Architectures
Enterprise Integration in Cloud Native Microservices Architectures
Crishantha Nanayakkara
AWS Systems Manager
AWS Systems Manager
Crishantha Nanayakkara
AWS Big Data Landscape
AWS Big Data Landscape
Crishantha Nanayakkara
1BT_Designing_Microservices
1BT_Designing_Microservices
Crishantha Nanayakkara
1BT_Tech_Talk_AWS_Cross_Account_Access
1BT_Tech_Talk_AWS_Cross_Account_Access
Crishantha Nanayakkara
AWS Security Hub
AWS Security Hub
Crishantha Nanayakkara
Resiilient Architectures on AWS
Resiilient Architectures on AWS
Crishantha Nanayakkara
Reactive Microservices
Reactive Microservices
Crishantha Nanayakkara
Expectaions in IT industry
Expectaions in IT industry
Crishantha Nanayakkara
Towards Cloud Enabled Data Intensive Digital Transformation
Towards Cloud Enabled Data Intensive Digital Transformation
Crishantha Nanayakkara
Container Architecture
Container Architecture
Crishantha Nanayakkara
Microservices
Microservices
Crishantha Nanayakkara
Enterprise architecture in the current e-Government context in Sri Lanka
Enterprise architecture in the current e-Government context in Sri Lanka
Crishantha Nanayakkara
Modern Trends in IT
Modern Trends in IT
Crishantha Nanayakkara
ICTA Meetup 12 - Message Brokers
ICTA Meetup 12 - Message Brokers
Crishantha Nanayakkara
ICTA Meetup 11 - Big Data
ICTA Meetup 11 - Big Data
Crishantha Nanayakkara
Lanka Gate Core Components - Government CIO Workshop Dec 2013
Lanka Gate Core Components - Government CIO Workshop Dec 2013
Crishantha Nanayakkara
Plus de Crishantha Nanayakkara
(20)
Sri Lanka Government Enterprise Architecture
Sri Lanka Government Enterprise Architecture
Application Deployement Strategies
Application Deployement Strategies
Azure for AWS Developers
Azure for AWS Developers
Enterprise Integration in Cloud Native Microservices Architectures
Enterprise Integration in Cloud Native Microservices Architectures
AWS Systems Manager
AWS Systems Manager
AWS Big Data Landscape
AWS Big Data Landscape
1BT_Designing_Microservices
1BT_Designing_Microservices
1BT_Tech_Talk_AWS_Cross_Account_Access
1BT_Tech_Talk_AWS_Cross_Account_Access
AWS Security Hub
AWS Security Hub
Resiilient Architectures on AWS
Resiilient Architectures on AWS
Reactive Microservices
Reactive Microservices
Expectaions in IT industry
Expectaions in IT industry
Towards Cloud Enabled Data Intensive Digital Transformation
Towards Cloud Enabled Data Intensive Digital Transformation
Container Architecture
Container Architecture
Microservices
Microservices
Enterprise architecture in the current e-Government context in Sri Lanka
Enterprise architecture in the current e-Government context in Sri Lanka
Modern Trends in IT
Modern Trends in IT
ICTA Meetup 12 - Message Brokers
ICTA Meetup 12 - Message Brokers
ICTA Meetup 11 - Big Data
ICTA Meetup 11 - Big Data
Lanka Gate Core Components - Government CIO Workshop Dec 2013
Lanka Gate Core Components - Government CIO Workshop Dec 2013
Dernier
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
ThousandEyes
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
AndikSusilo4
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Ridwan Fadjar
Key Features Of Token Development (1).pptx
Key Features Of Token Development (1).pptx
LBM Solutions
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
carlostorres15106
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Safe Software
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
Paola De la Torre
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
naman860154
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
2toLead Limited
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Mark Billinghurst
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Patryk Bandurski
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Michael W. Hawkins
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
naman860154
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Delhi Call girls
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Safe Software
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
hans926745
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
Neo4j
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
Radu Cotescu
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
XfilesPro
Dernier
(20)
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
Key Features Of Token Development (1).pptx
Key Features Of Token Development (1).pptx
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
How to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
Domain Driven Design and Hexagonal Architecture
1.
The Domain Driven Design and the Hexagonal Architecture Auxenta Tech Talk June 2017 Crishantha Nanayakkara (@crishantha)
2.
2 The Strategic Design
3.
Domain Driven Design (DDD)
4.
Domain Driven Design (DDD)
5.
5 Bounded Context ● It is a “Strategic Design Pattern”. ● It describes a “Semantic Contextual Boundary”. –
Within the boundary, each component of the software model has a specific meaning and does specific things.
6.
6 Core Domain(s) ● An Enterprise consists of multiple “Core Domain(s)” ● Core Domain = Bounded Context ●
The boundary is completely determined by the Core Domain owner ● Each Core Domain / Bounded Context, consists of – A source code repository – A database – Set of Concepts
7.
7 Bounded Context The original set of Concepts
8.
8 Bounded Context The Concepts are kept on getting added
9.
9 Bounded Context The “Big Ball of Mud”
10.
10 Bounded Context ● While selecting the Core Domain/ Bounded Context it is important to give the FOCUS on the business complexity than the technical complexity ● Hence, it is required the developers to dig into the business model along with Domain Experts!
11.
11 Ubiquitous Language ● In DDD, finding the correct Ubiquitous Language is important to find the “In Context” and the “Out Context” ● It is not about finding only nouns in the context ●
It is about finding the scenarios in the context ● Scenarios are not the typical use cases that you find in the OOD
12.
12 ● In a DDD project, there can be multiple “Bounded Contexts”. ● In a DDD project, a “Bounded Context” should align 1:1 with a single “Sub Domain” ●
A “Sub Domain” is a subpart of your overall business domain. ● There are three primary types of Sub Domains in an Enterprise. – Core Domain – Supporting Domain – Generic Domain Sub Domains
13.
13 ● There are six sub domains in the following including the Core Domain, which is the “Agile Project Management Core” Sub Domains
14.
14 ● When one Bounded Context is integrate with some other Bounded Context, this integration is known as the “Context Mapping” Context Mapping
15.
15 ● Partnership ● Shared Kernel ●
CustomerSupplier ● Conformist ● Anticorruption Layer ● Open Host Service ● Published Language ● Separate Ways Context Mapping Types
16.
16 ● Partnership – Two teams create a partnership with a dependent set of goals –
Two teams will succeed or fail together – The partnership will succeed as long as the commitment lies between both parties Context Mapping Types
17.
17 ● Shared Kernel – Two teams share a small but a common model –
Often difficult to manage Context Mapping Types
18.
18 ● CustomerSupplier – Supplier (Upstream); Customer (Downstream) –
Supplier decides what the customer gets Context Mapping Types
19.
19 ● Conformist – A CustomerSupplier type –
Downstream model should conform to the Upstream model always Context Mapping Types
20.
20 ● AntiCorruption Layer – The layer isolates the Upstream model from the Downstream model and translates between the two Context Mapping Types
21.
21 ● Open Host Service / Published Language – The host defines the interface as an API and it can be consumed by any customer –
This is a much better method compared to others – The “Published Language” is when you are using a standard interface, such as WSDL or JSON Context Mapping Types
22.
22 ● Separate Ways – There is no connection between two bounded contexts Context Mapping Types
23.
23 Aggregate ● There are two Bounded Contexts here ● Each Bounded Context has got multiple Aggregates –
e.g. The “Product”, “Backlog Item”, “Release”, “Sprint” are aggregates on the left Bounded Context
24.
24 ● Aggregate is a pattern in DDD, which is a cluster of domain objects that can be treated as a single unit ● One of its component objects be the “aggregate root” ●
The aggregate root can ensure the integrity of the aggregate as a whole Aggregate
25.
25 ● Each aggregate forms a transactional consistency boundary ● Only one aggregate should be committed in a single transaction (The general rule in the aggregate design) ●
Any other aggregate should be committed in a separate transaction Aggregate
26.
26 ● Design Small Aggregates and eliminate large aggregates ● Smaller aggregates are easier to work on and scalable ●
Follows the SRP (Single Responsibility Principle) Aggregate
27.
27 ● Reference other aggregates by Identity only. Helps to keep Aggregates small and prevents reaching out to modify multiple aggregates in the same transaction ● Lower memory requirement and quicker loading from the persistent store ●
Facilitates multiple persistence stores such as Relational Databases, Document Databases, Key Value Stores Aggregate
28.
28 ● Updating the other Aggregates using “Domain Events” Aggregate
29.
29 ● Updating the other Aggregates using “Domain Events” and a “Messaging Mechanism” Aggregates and Domain Events
30.
30 ● Though both Aggregates are in the same Bounded Context, it is easy to use the same Messaging Middleware to do the eventing, which probably used for messaging between Bounded Contexts Domain Events
31.
31 The Hexagonal Architecture (Ports and Adapters) ● This is known as the fundamental architecture in DDD. ● It is an “Architecture Style”, also known as the “Ports and Adapters” ●
An extension to the traditional “layered architecture”, which has one directional thinking and mostly all the dependencies go in one direction ● It talks about the distinction between the softwares’ inside and outside parts – Inside Part: the Domain model – Outside Part : UI, Database and Messaging
32.
32 The Three Components ● There are 3 main components – Domain Model –
Ports – Adapters ● Domain Model – A conceptual model, a representation of meaningful concepts to the domain that need to be modeled in software
33.
33 The Three Components ● Ports – Primary Ports ●
Main APIs/ Interfaces of the application. ● They are called by the Primary Adapters – Secondary Ports ● APIs/ Interfaces for the Secondary Adapters ● They are called by the Core Logic
34.
34 The Three Components ● Adapter is a bridge between the application and the port / service ● Adapters –
Primary Adapter – A piece of code between the user and the core logic and interact with the Primary port – Secondary Adapter – Interacts with the Secondary port
35.
35 The Architecture
36.
36 The Architecture
37.
37 References ● Domain Driven
Design Distilled – By Vaughn Vernon ● https://www.thoughtworks.com/insights/blog/domain-driven-design-se rvices-architecture ● https://dzone.com/refcardz/getting-started-domain-driven
38.
Thank YouThank You Crishantha NanayakkaraCrishantha Nanayakkara Director – Technology, AuxentaDirector – Technology, Auxenta email: crishantha@auxenta.comemail: crishantha@auxenta.com Twitter: @crishanthaTwitter: @crishantha Blog : Blog : www.crishantha.comwww.crishantha.com LinkedIn: http://linkedin.com/in/crishanthaLinkedIn: http://linkedin.com/in/crishantha
Télécharger maintenant