SlideShare a Scribd company logo
Clean architecture
Domain Driven
Design
Ports and Adapters
Domain Driven Design
Users 

(Domain Experts)
Developers 
Common 

Language
Directly represented in (OOP) Code
•simplified, abstract view of problem
•driven by the mental model of the users
•helps to understand the problem area
•cyclic process of refining the domain model.
•The DM grows and changes!
Domain Driven Design
Tactical Strategic
Entity
Value
Entity
Bounded Context
Bounded Context
Bounded Context
Focus on reduced potent
model in the defined
boundaries
High cohäsion / Low coupling

Explicit Mapping/Translation
between different Contexts
Domain Driven Design
Entity & Aggregate
Root
Value Object
Factory
Repository Service
Domain

Event
Tactical
receive
receive / 

do something
contains 

business logic
immutability
aggregate
construct
Flamingo – Ports and Adapters
Technology Free Domain Model
Application Use Cases
Adapters to the outside / Web
Controllers
Technical details 

(e.g. accessing a microservice)
Domain of “Product”
Context
Interface Layer
Flamingo – Ports and Adapters
<<interface>>
ProductService

.Get (id)
Used as primary port:
• The product service is called from
the interface layer for example 

(in a ProductViewController)
ProductController

.ViewAction
Product
Domain of “Product”
Context
Flamingo – Ports and Adapters
<<interface>>
ProductService

.Get (id)
Product
Infrastructure Layer
ProductServiceAdapter
Get (id) {…}
Used as secondary port:
• The product service is 

implemented by a secondary adapter
Flamingo commerce 

Bounded Contexts with its domain models
Cart
• Mutli delivery
• Multi payment
Product
• Product Types
• Simple
• Configurable
Search
• SearchService
• Documents
…
CartProduct Search
…
• Easy to use and decoupled
• Potent models
• Technology neutral domain
model
Flamingo commerce 

Bounded Contexts with its domain models
Magento 2 - Rest API
Flamingo commerce + Magento
Magento Adapter Module
CartProduct Search
…

More Related Content

What's hot

Webinar: Fast front-end development and easy personalization for SAP Commerce...
Webinar: Fast front-end development and easy personalization for SAP Commerce...Webinar: Fast front-end development and easy personalization for SAP Commerce...
Webinar: Fast front-end development and easy personalization for SAP Commerce...
Frosmo
 
Pega systems vs siebel CRM capabilities - A first look
Pega systems vs siebel CRM capabilities - A first lookPega systems vs siebel CRM capabilities - A first look
Pega systems vs siebel CRM capabilities - A first look
Anjan Sarma
 
Onion Architecture
Onion ArchitectureOnion Architecture
Onion Architecture
matthidinger
 
L13 Presentation Layer Design
L13 Presentation Layer DesignL13 Presentation Layer Design
L13 Presentation Layer Design
Ólafur Andri Ragnarsson
 
WebML for OMG
WebML for OMGWebML for OMG
WebML for OMG
Marco Brambilla
 
L17 Presentation Layer Design
L17 Presentation Layer DesignL17 Presentation Layer Design
L17 Presentation Layer Design
Ólafur Andri Ragnarsson
 
L15 Organising Domain Layer
L15 Organising Domain LayerL15 Organising Domain Layer
L15 Organising Domain Layer
Ólafur Andri Ragnarsson
 
Technical Envirment Johan Olsson
Technical Envirment Johan OlssonTechnical Envirment Johan Olsson
Technical Envirment Johan Olsson
Microsoft Partner Network Sweden
 
Salesforce administrator training presentation slides
Salesforce administrator training presentation slides Salesforce administrator training presentation slides
Salesforce administrator training presentation slides
Salesforce Associates
 
Weaver Fx Slide Show
Weaver Fx Slide ShowWeaver Fx Slide Show
Weaver Fx Slide Show
Veerendra Nagabhirava
 
Nav2009 architecture overview
Nav2009 architecture overviewNav2009 architecture overview
Nav2009 architecture overview
Jams Katropolitan
 
Sap crm technical summary
Sap crm technical summarySap crm technical summary
Sap crm technical summary
Souptik13
 
Scribe insight 03 elevating performance
Scribe insight 03   elevating performanceScribe insight 03   elevating performance
Scribe insight 03 elevating performance
Scribe Software Corp.
 
IBM Bluemix for Administrators with Focus on XPages
IBM Bluemix for Administrators with Focus on XPagesIBM Bluemix for Administrators with Focus on XPages
IBM Bluemix for Administrators with Focus on XPages
Niklas Heidloff
 
Eric grover strategies for sharing code with windows 8 and windows phone 8 ...
Eric grover   strategies for sharing code with windows 8 and windows phone 8 ...Eric grover   strategies for sharing code with windows 8 and windows phone 8 ...
Eric grover strategies for sharing code with windows 8 and windows phone 8 ...
Eric Grover
 
Product Camp Silicon Valley 2018 - PM Technical Skills
Product Camp Silicon Valley 2018 - PM Technical SkillsProduct Camp Silicon Valley 2018 - PM Technical Skills
Product Camp Silicon Valley 2018 - PM Technical Skills
Sandeep Adwankar
 
Collaborative Line of Business Applications on IBM Bluemix
Collaborative Line of Business Applications on IBM BluemixCollaborative Line of Business Applications on IBM Bluemix
Collaborative Line of Business Applications on IBM Bluemix
Niklas Heidloff
 
Onion architecture
Onion architectureOnion architecture
Onion architecture
Vidyasagar Machupalli
 
Interaction Flow Modeling Language (IFML) First Submission at OMG
Interaction Flow Modeling Language (IFML)  First Submission at OMG Interaction Flow Modeling Language (IFML)  First Submission at OMG
Interaction Flow Modeling Language (IFML) First Submission at OMG
Marco Brambilla
 
47Line PriorityEngine
47Line PriorityEngine47Line PriorityEngine
47Line PriorityEngine
CMPUTE
 

What's hot (20)

Webinar: Fast front-end development and easy personalization for SAP Commerce...
Webinar: Fast front-end development and easy personalization for SAP Commerce...Webinar: Fast front-end development and easy personalization for SAP Commerce...
Webinar: Fast front-end development and easy personalization for SAP Commerce...
 
Pega systems vs siebel CRM capabilities - A first look
Pega systems vs siebel CRM capabilities - A first lookPega systems vs siebel CRM capabilities - A first look
Pega systems vs siebel CRM capabilities - A first look
 
Onion Architecture
Onion ArchitectureOnion Architecture
Onion Architecture
 
L13 Presentation Layer Design
L13 Presentation Layer DesignL13 Presentation Layer Design
L13 Presentation Layer Design
 
WebML for OMG
WebML for OMGWebML for OMG
WebML for OMG
 
L17 Presentation Layer Design
L17 Presentation Layer DesignL17 Presentation Layer Design
L17 Presentation Layer Design
 
L15 Organising Domain Layer
L15 Organising Domain LayerL15 Organising Domain Layer
L15 Organising Domain Layer
 
Technical Envirment Johan Olsson
Technical Envirment Johan OlssonTechnical Envirment Johan Olsson
Technical Envirment Johan Olsson
 
Salesforce administrator training presentation slides
Salesforce administrator training presentation slides Salesforce administrator training presentation slides
Salesforce administrator training presentation slides
 
Weaver Fx Slide Show
Weaver Fx Slide ShowWeaver Fx Slide Show
Weaver Fx Slide Show
 
Nav2009 architecture overview
Nav2009 architecture overviewNav2009 architecture overview
Nav2009 architecture overview
 
Sap crm technical summary
Sap crm technical summarySap crm technical summary
Sap crm technical summary
 
Scribe insight 03 elevating performance
Scribe insight 03   elevating performanceScribe insight 03   elevating performance
Scribe insight 03 elevating performance
 
IBM Bluemix for Administrators with Focus on XPages
IBM Bluemix for Administrators with Focus on XPagesIBM Bluemix for Administrators with Focus on XPages
IBM Bluemix for Administrators with Focus on XPages
 
Eric grover strategies for sharing code with windows 8 and windows phone 8 ...
Eric grover   strategies for sharing code with windows 8 and windows phone 8 ...Eric grover   strategies for sharing code with windows 8 and windows phone 8 ...
Eric grover strategies for sharing code with windows 8 and windows phone 8 ...
 
Product Camp Silicon Valley 2018 - PM Technical Skills
Product Camp Silicon Valley 2018 - PM Technical SkillsProduct Camp Silicon Valley 2018 - PM Technical Skills
Product Camp Silicon Valley 2018 - PM Technical Skills
 
Collaborative Line of Business Applications on IBM Bluemix
Collaborative Line of Business Applications on IBM BluemixCollaborative Line of Business Applications on IBM Bluemix
Collaborative Line of Business Applications on IBM Bluemix
 
Onion architecture
Onion architectureOnion architecture
Onion architecture
 
Interaction Flow Modeling Language (IFML) First Submission at OMG
Interaction Flow Modeling Language (IFML)  First Submission at OMG Interaction Flow Modeling Language (IFML)  First Submission at OMG
Interaction Flow Modeling Language (IFML) First Submission at OMG
 
47Line PriorityEngine
47Line PriorityEngine47Line PriorityEngine
47Line PriorityEngine
 

Similar to Flamingo Commerce Ports and Adapters

Crafted Design - Sandro Mancuso
Crafted Design - Sandro MancusoCrafted Design - Sandro Mancuso
Crafted Design - Sandro Mancuso
JAXLondon2014
 
soa1.ppt
soa1.pptsoa1.ppt
soa1.ppt
ShanmugamS34
 
C++ N Pv2
C++ N Pv2C++ N Pv2
C++ N Pv2
Denis Mishin
 
Usability awareness brown bag
Usability awareness brown bagUsability awareness brown bag
Usability awareness brown bag
LawrenceNajjar
 
RailswayCon 2010 - Command Your Domain
RailswayCon 2010 - Command Your DomainRailswayCon 2010 - Command Your Domain
RailswayCon 2010 - Command Your Domain
Lourens Naudé
 
Full-Stack-Web-Development.pptx
Full-Stack-Web-Development.pptxFull-Stack-Web-Development.pptx
Full-Stack-Web-Development.pptx
RonakBothra8
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
Bill Duncan
 
L19 Application Architecture
L19 Application ArchitectureL19 Application Architecture
L19 Application Architecture
Ólafur Andri Ragnarsson
 
Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014
Sandro Mancuso
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
kanimozhin
 
Reducing External Risk
Reducing External RiskReducing External Risk
Reducing External Risk
Donald Belcham
 
Oracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best PracticesOracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best Practices
Rajesh Raheja
 
Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures
David Freitas
 
Ekon23 (1) Kingdom-Driven-Design
Ekon23 (1) Kingdom-Driven-DesignEkon23 (1) Kingdom-Driven-Design
Ekon23 (1) Kingdom-Driven-Design
Arnaud Bouchez
 
Domain driven design simplified
Domain driven design simplifiedDomain driven design simplified
Domain driven design simplified
Vinod Wilson
 
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
Tim Mahy
 
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
VMware Tanzu Korea
 
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
VMware Tanzu Korea
 
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
ghodgkinson
 

Similar to Flamingo Commerce Ports and Adapters (20)

Crafted Design - Sandro Mancuso
Crafted Design - Sandro MancusoCrafted Design - Sandro Mancuso
Crafted Design - Sandro Mancuso
 
soa1.ppt
soa1.pptsoa1.ppt
soa1.ppt
 
C++ N Pv2
C++ N Pv2C++ N Pv2
C++ N Pv2
 
Usability awareness brown bag
Usability awareness brown bagUsability awareness brown bag
Usability awareness brown bag
 
RailswayCon 2010 - Command Your Domain
RailswayCon 2010 - Command Your DomainRailswayCon 2010 - Command Your Domain
RailswayCon 2010 - Command Your Domain
 
Full-Stack-Web-Development.pptx
Full-Stack-Web-Development.pptxFull-Stack-Web-Development.pptx
Full-Stack-Web-Development.pptx
 
Rhapsody Software
Rhapsody SoftwareRhapsody Software
Rhapsody Software
 
L19 Application Architecture
L19 Application ArchitectureL19 Application Architecture
L19 Application Architecture
 
Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014Crafted Design - LJC World Tour Mash Up 2014
Crafted Design - LJC World Tour Mash Up 2014
 
Techcello at a glance
Techcello at a glanceTechcello at a glance
Techcello at a glance
 
Reducing External Risk
Reducing External RiskReducing External Risk
Reducing External Risk
 
Oracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best PracticesOracle OpenWorld 2009 AIA Best Practices
Oracle OpenWorld 2009 AIA Best Practices
 
Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures Pattern-Oriented Distributed Software Architectures
Pattern-Oriented Distributed Software Architectures
 
Ekon23 (1) Kingdom-Driven-Design
Ekon23 (1) Kingdom-Driven-DesignEkon23 (1) Kingdom-Driven-Design
Ekon23 (1) Kingdom-Driven-Design
 
Domain driven design simplified
Domain driven design simplifiedDomain driven design simplified
Domain driven design simplified
 
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
 
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
2018 Pivotal DevOps Day_마이크로서비스 전환 방법론과 사례
 
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
2018 Pivotal DevOps Day_Pivotal 소개 및 세션 아젠다 소개
 
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
Nesma autumn conference 2015 - Is FPA a valuable addition to predictable agil...
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 

More from i-love-flamingo

Graphql with Flamingo
Graphql with FlamingoGraphql with Flamingo
Graphql with Flamingo
i-love-flamingo
 
Flamingo in Production
Flamingo in ProductionFlamingo in Production
Flamingo in Production
i-love-flamingo
 
Flamingo Core Concepts
Flamingo Core ConceptsFlamingo Core Concepts
Flamingo Core Concepts
i-love-flamingo
 
Flamingo Training - Hello World
Flamingo Training - Hello WorldFlamingo Training - Hello World
Flamingo Training - Hello World
i-love-flamingo
 
Flamingo Commerce Module Details
Flamingo Commerce Module DetailsFlamingo Commerce Module Details
Flamingo Commerce Module Details
i-love-flamingo
 
Flamingo Hello World Tutorial
Flamingo Hello World TutorialFlamingo Hello World Tutorial
Flamingo Hello World Tutorial
i-love-flamingo
 

More from i-love-flamingo (6)

Graphql with Flamingo
Graphql with FlamingoGraphql with Flamingo
Graphql with Flamingo
 
Flamingo in Production
Flamingo in ProductionFlamingo in Production
Flamingo in Production
 
Flamingo Core Concepts
Flamingo Core ConceptsFlamingo Core Concepts
Flamingo Core Concepts
 
Flamingo Training - Hello World
Flamingo Training - Hello WorldFlamingo Training - Hello World
Flamingo Training - Hello World
 
Flamingo Commerce Module Details
Flamingo Commerce Module DetailsFlamingo Commerce Module Details
Flamingo Commerce Module Details
 
Flamingo Hello World Tutorial
Flamingo Hello World TutorialFlamingo Hello World Tutorial
Flamingo Hello World Tutorial
 

Recently uploaded

DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
ICS
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
Sven Peters
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
kalichargn70th171
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Envertis Software Solutions
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 

Recently uploaded (20)

DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
Webinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for EmbeddedWebinar On-Demand: Using Flutter for Embedded
Webinar On-Demand: Using Flutter for Embedded
 
Microservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we workMicroservice Teams - How the cloud changes the way we work
Microservice Teams - How the cloud changes the way we work
 
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...
 
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise EditionWhy Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
Why Choose Odoo 17 Community & How it differs from Odoo 17 Enterprise Edition
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 

Flamingo Commerce Ports and Adapters

  • 1.
  • 3. Domain Driven Design Users 
 (Domain Experts) Developers 
Common 
 Language Directly represented in (OOP) Code •simplified, abstract view of problem •driven by the mental model of the users •helps to understand the problem area •cyclic process of refining the domain model. •The DM grows and changes!
  • 4. Domain Driven Design Tactical Strategic Entity Value Entity Bounded Context Bounded Context Bounded Context Focus on reduced potent model in the defined boundaries High cohäsion / Low coupling Explicit Mapping/Translation between different Contexts
  • 5. Domain Driven Design Entity & Aggregate Root Value Object Factory Repository Service Domain
 Event Tactical receive receive / 
 do something contains 
 business logic immutability aggregate construct
  • 6. Flamingo – Ports and Adapters Technology Free Domain Model Application Use Cases Adapters to the outside / Web Controllers Technical details 
 (e.g. accessing a microservice)
  • 7. Domain of “Product” Context Interface Layer Flamingo – Ports and Adapters <<interface>> ProductService
 .Get (id) Used as primary port: • The product service is called from the interface layer for example 
 (in a ProductViewController) ProductController
 .ViewAction Product
  • 8. Domain of “Product” Context Flamingo – Ports and Adapters <<interface>> ProductService
 .Get (id) Product Infrastructure Layer ProductServiceAdapter Get (id) {…} Used as secondary port: • The product service is 
 implemented by a secondary adapter
  • 9. Flamingo commerce 
 Bounded Contexts with its domain models Cart • Mutli delivery • Multi payment Product • Product Types • Simple • Configurable Search • SearchService • Documents …
  • 10. CartProduct Search … • Easy to use and decoupled • Potent models • Technology neutral domain model Flamingo commerce 
 Bounded Contexts with its domain models
  • 11. Magento 2 - Rest API Flamingo commerce + Magento Magento Adapter Module CartProduct Search …