apidays London 2023 - Why and how to apply DDD to APIs, Radhouane Jrad, QBE Europe

apidays
apidaysapidays
Domain
Driven
Design
2023 © Mother Earth
Radhouane Jrad
The Plan
• DDD in General (History, etc.)
• Designing in DDD
• Implementing DDD: Use-Case
• Implementing DDD Principles
• DDD & Horizontal Scalability
• Principles Guiding API Governance
02/23
Disclaimer
DDD is a rich, complex, sometimes antagonistic topic. This presentation is an implementation of
DDD and some aspects may differ from other implementations.
The views in this presentation fairly (but not fully) adhere to standard DDD concepts.
03/23
Mantra
As a developer, it is your understanding, rather than your knowledge, that becomes software!
Alberto Brandolini
04/23
Origins: 2003
05/23
How Did We Get to DDD?
Business Model Business Domain
Domain Driven
Design
• Describes core aspects of company’s values
(economic, social, environmental, etc.) & how it
‘lives’ them
• Reflects rationale of a company’s purposes,
processes, markets, products & services, strategies,
infrastructure, operational processes, policies, etc.
Business Strategy
• Defines goals of the company
• Competitive matters: How to fight & compete?
What are our strengths & weaknesses? Where
are market opportunities? Lateral concerns
(social, societal, environmental, etc.)
• Different to Operational Strategy (efficiency, cost
mgmt., etc.)
Corporate Strategy
• Existential matters:
• What business should
we be in?
• What business should
we NOT be in?
• Essentially, 2 types of models:
• Linear (aka Pipes): upstream production &
downstream consumption,
e.g. ink > pen + lid > wholesale
• Networked (aka Platforms): multi-directional
exchange (e.g. Digital Transformation)
• We start getting technical:
• A “simple view” of a “complex Reality (UML)
• Class-based representation of objects being implemented
• Generated through Business Modelling & designed by Business
Analysts.
• Categorises the set of business systems that represent autonomous
units of the business modeled during Business Analysis.
Strategy
Operations
Infrastructure
• Aim is to structure the code and its language to
reflect the Business Domain
• e.g. Class ClaimApplication; + Class Customer +
method approveClaim + method rejectClaim
06/23
The Concept of Domain Driven Design
Business Domain
Domain Driven
Design
• We start getting technical:
• A “simple view” of a “complex Reality (UML)
• Class-based representation of objects being implemented
• Generated through Business Modelling & designed by Business
Analysts.
• Categorises the set of business systems that represent autonomous
units of the business modeled during Business Analysis.
• Aim is to structure the code and its language to
reflect the Business Domain
• e.g. Class ClaimApplication; + Class Customer +
method approveClaim + method rejectClaim
06/23
When to Use DDD?
07/23
Meaningfulness of DDD
08/23
DDD Strategic Tools
09/23
Sleeping
Compartment
Engine Room
Logistics
Kitchen
Captain’s Corner
Viewing Deck
Gathering Area
DDD Strategic Tools
10/23
Dining Room
Kitchen
Master
Bedroom
Garage
Guests Room
Living Room
Kid’s Room
Master Storage
Storage
Front Lawn
Shower/WC
Designing in DDD
11/23
Insurance Example
Customer =
Active policies,
historical
policies, MTA
Domain: Policy
Customer =
Open claims,
historical claims,
NCD status
Domain: Claim
Customer =
Name, physical
address, mobile
no.
Domain: Party
DB
API
DB
API
DB
API
12/23
Case Study: Integration for Insurance
13/23
Policy
Domains Cross-Contamination
14/23
Claims
DGL API
AL API
ACL API
DGL API
AL API
ACL API
Consumer A
Sys. Of.
Rec
X
Claims
Policy
Domain Gateway Layer APIs
15/23
Claims
DGL API
AL API
ACL API
DGL API
AL API
ACL API
Consumer A
Sys. Of.
Rec
• DGL API act as gateway to the
domain
• Every domain’s Abstract Layer is
constructed, developed, and
maintained ignoring other domains
• Every domain’s ACL is constructed,
developed, and maintained ignoring
other domains
• Security, Infrastructure,Testing, and
Asset Reusability requirements are
easy to address
• Usually one DGL API per Domain.
Domain Gateway Layer APIs
16/23
Claims Policy
The Case of a Common System of
Records
17/23
DGL API
AL API
ACL API
DGL API
ACL API
Consumer A
Sys. Of.
Rec
Consumer B
X
Claims Policy
Anti-Corruption Layer
17/23
DGL API
AL API
ACL API
DGL API
ACL API
Consumer A
Sys. Of.
Rec
Consumer B
Claim Processes
Need Policy no?
Policy Processes
DDD & Horizontal Scalability
18/23
Instance A
(1 CPU Unit)
DDD & Horizontal Scalability
19/23
Step 1 Step 2 Step 3 Step 4 Step 5
Instance B
(1 CPU Unit)
Step 1 Step 2 Step 3 Step 4 Step 5
Queues Queues
Some Notes:
20/23
Principles Guiding API Governance
21/23
Structural Principles
Feedback-Based Design (DSR)
SOLiD:
•Single Responsibility Principle (SRP)
•Open/Close Principle (OCP)
•Liskov, Interface Segregation Principle (ISP)
•Dependency Inversion Principles
Reusability Primacy of Principles
Domain Driven Design
Separation of Concerns
Three-layered Architecture
API-Led Architecture
YAGNI
Minimise Coupling
KISS
Git-based Version Control
O-Auth based Security
C-back with JWT
Asset exposure
(Marketplace)
IPaaS
(Managed Services)
API Catalogue
Logging
Smart Endpoints, Dumb Pipelines Asynchronous vs. Synchronous
Queues vs. EDA vs. Pub/Sub
Driving Principles
Technological Baseline
Security By Design
Horizontal vs. Vertical Scalability
Singular Technology
Integration Inventory
Load Balancers
REST vs. SOAP
Component Based Statelessness
API Building Blocks
22/23
Domain
Driven
Design
API-Led
Design
Pattern
Horizontal-
First
Scalability
REST-first ,
JSON-first
Integration
iPaaS
Security
By
Design
Product-
based
Reusability; Evolvability; Extensibility;
Security; Cost-Effectiveness;
Auditability; Clarity;
Simplicity/Simplification…
Thanks
23/23
LinkedIn: Radhouane Jrad
Questions?
2016 2013 2003
Some Good
Reads:
1 von 25

Recomendados

Introduction to Amazon Elasticsearch Service von
Introduction to  Amazon Elasticsearch ServiceIntroduction to  Amazon Elasticsearch Service
Introduction to Amazon Elasticsearch ServiceAmazon Web Services
2.6K views56 Folien
Architecture: Microservices von
Architecture: MicroservicesArchitecture: Microservices
Architecture: MicroservicesAmazon Web Services
23.2K views56 Folien
Microservice Architecture | Microservices Tutorial for Beginners | Microservi... von
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...Edureka!
1.4K views27 Folien
API Management architect presentation von
API Management architect presentationAPI Management architect presentation
API Management architect presentationsflynn073
13.6K views98 Folien
Best Practices for Implementing Your Encryption Strategy Using AWS Key Manage... von
Best Practices for Implementing Your Encryption Strategy Using AWS Key Manage...Best Practices for Implementing Your Encryption Strategy Using AWS Key Manage...
Best Practices for Implementing Your Encryption Strategy Using AWS Key Manage...Amazon Web Services
3.4K views44 Folien
Microservices von
MicroservicesMicroservices
MicroservicesStephan Lindauer
797 views12 Folien

Más contenido relacionado

Was ist angesagt?

IBM API Connect - overview von
IBM API Connect - overviewIBM API Connect - overview
IBM API Connect - overviewRamy Bassem
1.3K views15 Folien
Amazon API Gateway von
Amazon API GatewayAmazon API Gateway
Amazon API GatewayAmazon Web Services
12.6K views40 Folien
Event Driven Architecture: Mistakes, I've made a few... von
Event Driven Architecture: Mistakes, I've made a few...Event Driven Architecture: Mistakes, I've made a few...
Event Driven Architecture: Mistakes, I've made a few...confluent
919 views32 Folien
Serverless Computing: build and run applications without thinking about servers von
Serverless Computing: build and run applications without thinking about serversServerless Computing: build and run applications without thinking about servers
Serverless Computing: build and run applications without thinking about serversAmazon Web Services
5.8K views47 Folien
Microservice vs. Monolithic Architecture von
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic ArchitecturePaul Mooney
90K views18 Folien
Designing APIs and Microservices Using Domain-Driven Design von
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven DesignLaunchAny
15.1K views48 Folien

Was ist angesagt?(20)

IBM API Connect - overview von Ramy Bassem
IBM API Connect - overviewIBM API Connect - overview
IBM API Connect - overview
Ramy Bassem1.3K views
Event Driven Architecture: Mistakes, I've made a few... von confluent
Event Driven Architecture: Mistakes, I've made a few...Event Driven Architecture: Mistakes, I've made a few...
Event Driven Architecture: Mistakes, I've made a few...
confluent919 views
Serverless Computing: build and run applications without thinking about servers von Amazon Web Services
Serverless Computing: build and run applications without thinking about serversServerless Computing: build and run applications without thinking about servers
Serverless Computing: build and run applications without thinking about servers
Amazon Web Services5.8K views
Microservice vs. Monolithic Architecture von Paul Mooney
Microservice vs. Monolithic ArchitectureMicroservice vs. Monolithic Architecture
Microservice vs. Monolithic Architecture
Paul Mooney90K views
Designing APIs and Microservices Using Domain-Driven Design von LaunchAny
Designing APIs and Microservices Using Domain-Driven DesignDesigning APIs and Microservices Using Domain-Driven Design
Designing APIs and Microservices Using Domain-Driven Design
LaunchAny15.1K views
Amazon API Gateway and AWS Lambda: Better Together von Danilo Poccia
Amazon API Gateway and AWS Lambda: Better TogetherAmazon API Gateway and AWS Lambda: Better Together
Amazon API Gateway and AWS Lambda: Better Together
Danilo Poccia2.7K views
API Strategy Introduction von Doug Gregory
API Strategy IntroductionAPI Strategy Introduction
API Strategy Introduction
Doug Gregory419 views
Enforcing Your Organization's API Design Standards with SwaggerHub von SmartBear
Enforcing Your Organization's API Design Standards with SwaggerHubEnforcing Your Organization's API Design Standards with SwaggerHub
Enforcing Your Organization's API Design Standards with SwaggerHub
SmartBear456 views
What's New in API Connect & DataPower Gateway in 1H 2018 von IBM API Connect
What's New in API Connect & DataPower Gateway in 1H 2018What's New in API Connect & DataPower Gateway in 1H 2018
What's New in API Connect & DataPower Gateway in 1H 2018
IBM API Connect9.1K views
Architecture Patterns for Multi-Region Active-Active Applications (ARC209-R2)... von Amazon Web Services
Architecture Patterns for Multi-Region Active-Active Applications (ARC209-R2)...Architecture Patterns for Multi-Region Active-Active Applications (ARC209-R2)...
Architecture Patterns for Multi-Region Active-Active Applications (ARC209-R2)...
Amazon Web Services26.2K views
APIsecure 2023 - Exploring Advanced API Security Techniques and Technologies,... von apidays
APIsecure 2023 - Exploring Advanced API Security Techniques and Technologies,...APIsecure 2023 - Exploring Advanced API Security Techniques and Technologies,...
APIsecure 2023 - Exploring Advanced API Security Techniques and Technologies,...
apidays85 views

Similar a apidays London 2023 - Why and how to apply DDD to APIs, Radhouane Jrad, QBE Europe

Domain Driven Design Introduction von
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introductionwojtek_s
1.2K views53 Folien
Tools for SIAM - Portfolio management von
Tools for SIAM - Portfolio managementTools for SIAM - Portfolio management
Tools for SIAM - Portfolio managementSoftware AG UK
4K views21 Folien
2019-Nov: Domain Driven Design (DDD) and when not to use it von
2019-Nov: Domain Driven Design (DDD) and when not to use it2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use itMark Windholtz
67 views45 Folien
Something super epic... von
Something super epic...Something super epic...
Something super epic...Rabah Rahil
673 views38 Folien
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design von
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven DesignNETFest
1.5K views55 Folien
An Introduction to Domain Driven Design in PHP von
An Introduction to Domain Driven Design in PHPAn Introduction to Domain Driven Design in PHP
An Introduction to Domain Driven Design in PHPChris Renner
2.5K views56 Folien

Similar a apidays London 2023 - Why and how to apply DDD to APIs, Radhouane Jrad, QBE Europe(20)

Domain Driven Design Introduction von wojtek_s
Domain Driven Design IntroductionDomain Driven Design Introduction
Domain Driven Design Introduction
wojtek_s1.2K views
Tools for SIAM - Portfolio management von Software AG UK
Tools for SIAM - Portfolio managementTools for SIAM - Portfolio management
Tools for SIAM - Portfolio management
Software AG UK4K views
2019-Nov: Domain Driven Design (DDD) and when not to use it von Mark Windholtz
2019-Nov: Domain Driven Design (DDD) and when not to use it2019-Nov: Domain Driven Design (DDD) and when not to use it
2019-Nov: Domain Driven Design (DDD) and when not to use it
Mark Windholtz67 views
Something super epic... von Rabah Rahil
Something super epic...Something super epic...
Something super epic...
Rabah Rahil673 views
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design von NETFest
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
.NET Fest 2019. Halil Ibrahim Kalkan. Implementing Domain Driven Design
NETFest1.5K views
An Introduction to Domain Driven Design in PHP von Chris Renner
An Introduction to Domain Driven Design in PHPAn Introduction to Domain Driven Design in PHP
An Introduction to Domain Driven Design in PHP
Chris Renner2.5K views
App Modernization with .NET Core: How Travelers Insurance is Going Cloud-Native von VMware Tanzu
App Modernization with .NET Core: How Travelers Insurance is Going Cloud-NativeApp Modernization with .NET Core: How Travelers Insurance is Going Cloud-Native
App Modernization with .NET Core: How Travelers Insurance is Going Cloud-Native
VMware Tanzu1.2K views
Security Modelling in ArchiMate von PECB
Security Modelling in ArchiMateSecurity Modelling in ArchiMate
Security Modelling in ArchiMate
PECB 5.2K views
Asset Information Management (AIM) Presentation @ ARC's 2011 Industry Forum von ARC Advisory Group
Asset Information Management (AIM) Presentation @ ARC's 2011 Industry ForumAsset Information Management (AIM) Presentation @ ARC's 2011 Industry Forum
Asset Information Management (AIM) Presentation @ ARC's 2011 Industry Forum
ARC Advisory Group5.5K views
Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03 von 99X Technology
Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03
Same Patterns Different Architectures - Colombo Architecture Meetup - Session-03
99X Technology510 views
Strategies for Implementing Aras Innovator von Aras
Strategies for Implementing Aras InnovatorStrategies for Implementing Aras Innovator
Strategies for Implementing Aras Innovator
Aras1.6K views
Re-engineering Technology to break barriers with Business von XPDays
Re-engineering Technology to break barriers with BusinessRe-engineering Technology to break barriers with Business
Re-engineering Technology to break barriers with Business
XPDays11 views
HOW TO SAVE PILEs of $$$ BY CREATING THE BEST DATA MODEL THE FIRST TIME (Ksc... von Kent Graziano
HOW TO SAVE  PILEs of $$$BY CREATING THE BEST DATA MODEL THE FIRST TIME (Ksc...HOW TO SAVE  PILEs of $$$BY CREATING THE BEST DATA MODEL THE FIRST TIME (Ksc...
HOW TO SAVE PILEs of $$$ BY CREATING THE BEST DATA MODEL THE FIRST TIME (Ksc...
Kent Graziano134 views
Dynamics ax 2012 development overview von Ali Raza Zaidi
Dynamics ax 2012 development overviewDynamics ax 2012 development overview
Dynamics ax 2012 development overview
Ali Raza Zaidi4.1K views

Más de apidays

apidays Australia - The Swiss Cheese Model of Layered API Security, Leon Andr... von
apidays Australia - The Swiss Cheese Model of Layered API Security, Leon Andr...apidays Australia - The Swiss Cheese Model of Layered API Security, Leon Andr...
apidays Australia - The Swiss Cheese Model of Layered API Security, Leon Andr...apidays
70 views50 Folien
apidays Australia - No API is an island, Erik Tveitnes, REA von
apidays Australia - No API is an island, Erik Tveitnes, REAapidays Australia - No API is an island, Erik Tveitnes, REA
apidays Australia - No API is an island, Erik Tveitnes, REAapidays
42 views17 Folien
apidays Australia - How We Built Our Generative AI Assistant; New Relic Grok,... von
apidays Australia - How We Built Our Generative AI Assistant; New Relic Grok,...apidays Australia - How We Built Our Generative AI Assistant; New Relic Grok,...
apidays Australia - How We Built Our Generative AI Assistant; New Relic Grok,...apidays
62 views32 Folien
apidays Australia - Discovering APIs And More With An Internal Developer Port... von
apidays Australia - Discovering APIs And More With An Internal Developer Port...apidays Australia - Discovering APIs And More With An Internal Developer Port...
apidays Australia - Discovering APIs And More With An Internal Developer Port...apidays
44 views24 Folien
Using APIs in a Design Thinking Approach to Problem Solving.pdf von
Using APIs in a Design Thinking Approach to Problem Solving.pdfUsing APIs in a Design Thinking Approach to Problem Solving.pdf
Using APIs in a Design Thinking Approach to Problem Solving.pdfapidays
43 views24 Folien
apidays Australia - Transforming Your Network To Secure, Control And Observe ... von
apidays Australia - Transforming Your Network To Secure, Control And Observe ...apidays Australia - Transforming Your Network To Secure, Control And Observe ...
apidays Australia - Transforming Your Network To Secure, Control And Observe ...apidays
31 views43 Folien

Más de apidays(20)

apidays Australia - The Swiss Cheese Model of Layered API Security, Leon Andr... von apidays
apidays Australia - The Swiss Cheese Model of Layered API Security, Leon Andr...apidays Australia - The Swiss Cheese Model of Layered API Security, Leon Andr...
apidays Australia - The Swiss Cheese Model of Layered API Security, Leon Andr...
apidays70 views
apidays Australia - No API is an island, Erik Tveitnes, REA von apidays
apidays Australia - No API is an island, Erik Tveitnes, REAapidays Australia - No API is an island, Erik Tveitnes, REA
apidays Australia - No API is an island, Erik Tveitnes, REA
apidays42 views
apidays Australia - How We Built Our Generative AI Assistant; New Relic Grok,... von apidays
apidays Australia - How We Built Our Generative AI Assistant; New Relic Grok,...apidays Australia - How We Built Our Generative AI Assistant; New Relic Grok,...
apidays Australia - How We Built Our Generative AI Assistant; New Relic Grok,...
apidays62 views
apidays Australia - Discovering APIs And More With An Internal Developer Port... von apidays
apidays Australia - Discovering APIs And More With An Internal Developer Port...apidays Australia - Discovering APIs And More With An Internal Developer Port...
apidays Australia - Discovering APIs And More With An Internal Developer Port...
apidays44 views
Using APIs in a Design Thinking Approach to Problem Solving.pdf von apidays
Using APIs in a Design Thinking Approach to Problem Solving.pdfUsing APIs in a Design Thinking Approach to Problem Solving.pdf
Using APIs in a Design Thinking Approach to Problem Solving.pdf
apidays43 views
apidays Australia - Transforming Your Network To Secure, Control And Observe ... von apidays
apidays Australia - Transforming Your Network To Secure, Control And Observe ...apidays Australia - Transforming Your Network To Secure, Control And Observe ...
apidays Australia - Transforming Your Network To Secure, Control And Observe ...
apidays31 views
apidays Australia - Consuming And Building APIs During Hackathons, William Mc... von apidays
apidays Australia - Consuming And Building APIs During Hackathons, William Mc...apidays Australia - Consuming And Building APIs During Hackathons, William Mc...
apidays Australia - Consuming And Building APIs During Hackathons, William Mc...
apidays11 views
apidays Australia - Building On-Premise Hybrid API Platforms, David Freeman, ... von apidays
apidays Australia - Building On-Premise Hybrid API Platforms, David Freeman, ...apidays Australia - Building On-Premise Hybrid API Platforms, David Freeman, ...
apidays Australia - Building On-Premise Hybrid API Platforms, David Freeman, ...
apidays22 views
apidays Australia - Enable Faster Delivery With Collaborative Platform Teams,... von apidays
apidays Australia - Enable Faster Delivery With Collaborative Platform Teams,...apidays Australia - Enable Faster Delivery With Collaborative Platform Teams,...
apidays Australia - Enable Faster Delivery With Collaborative Platform Teams,...
apidays28 views
apidays Australia - Building Trust Brick by Brick, Dasith Wijesiriwardena, Ju... von apidays
apidays Australia - Building Trust Brick by Brick, Dasith Wijesiriwardena, Ju...apidays Australia - Building Trust Brick by Brick, Dasith Wijesiriwardena, Ju...
apidays Australia - Building Trust Brick by Brick, Dasith Wijesiriwardena, Ju...
apidays39 views
apidays Australia - The Playful Bond Between REST And Data Streams, Warren Ve... von apidays
apidays Australia - The Playful Bond Between REST And Data Streams, Warren Ve...apidays Australia - The Playful Bond Between REST And Data Streams, Warren Ve...
apidays Australia - The Playful Bond Between REST And Data Streams, Warren Ve...
apidays37 views
apidays Australia - Unlocking The Power: The Importance Of API Registration, ... von apidays
apidays Australia - Unlocking The Power: The Importance Of API Registration, ...apidays Australia - Unlocking The Power: The Importance Of API Registration, ...
apidays Australia - Unlocking The Power: The Importance Of API Registration, ...
apidays17 views
apidays Australia - API Strategy In The Era Of Generative AI,Shreshta Shyamsu... von apidays
apidays Australia - API Strategy In The Era Of Generative AI,Shreshta Shyamsu...apidays Australia - API Strategy In The Era Of Generative AI,Shreshta Shyamsu...
apidays Australia - API Strategy In The Era Of Generative AI,Shreshta Shyamsu...
apidays72 views
apidays London 2023 - How APIs support the democratization of FAIR data and d... von apidays
apidays London 2023 - How APIs support the democratization of FAIR data and d...apidays London 2023 - How APIs support the democratization of FAIR data and d...
apidays London 2023 - How APIs support the democratization of FAIR data and d...
apidays69 views
apidays London 2023 - Revolutionising fitness and well-being, David Turner, V... von apidays
apidays London 2023 - Revolutionising fitness and well-being, David Turner, V...apidays London 2023 - Revolutionising fitness and well-being, David Turner, V...
apidays London 2023 - Revolutionising fitness and well-being, David Turner, V...
apidays34 views
apidays London 2023 - Let's make "true" impact happen!, Sandra Sydow, Climate... von apidays
apidays London 2023 - Let's make "true" impact happen!, Sandra Sydow, Climate...apidays London 2023 - Let's make "true" impact happen!, Sandra Sydow, Climate...
apidays London 2023 - Let's make "true" impact happen!, Sandra Sydow, Climate...
apidays24 views
apidays London 2023 - 7 pillars of an API Factory, Patrick Brosse, Amadeus von apidays
apidays London 2023 - 7 pillars of an API Factory, Patrick Brosse, Amadeusapidays London 2023 - 7 pillars of an API Factory, Patrick Brosse, Amadeus
apidays London 2023 - 7 pillars of an API Factory, Patrick Brosse, Amadeus
apidays52 views
apidays London 2023 - Meeting Relentless Business Change in a Post API Econom... von apidays
apidays London 2023 - Meeting Relentless Business Change in a Post API Econom...apidays London 2023 - Meeting Relentless Business Change in a Post API Econom...
apidays London 2023 - Meeting Relentless Business Change in a Post API Econom...
apidays20 views
apidays London 2023 - Overengineering Weakens your API Security, Dr. David Va... von apidays
apidays London 2023 - Overengineering Weakens your API Security, Dr. David Va...apidays London 2023 - Overengineering Weakens your API Security, Dr. David Va...
apidays London 2023 - Overengineering Weakens your API Security, Dr. David Va...
apidays42 views
apidays London 2023 - When to soar and when to dive, Claire Barrett, APIsFirst von apidays
apidays London 2023 - When to soar and when to dive, Claire Barrett, APIsFirst apidays London 2023 - When to soar and when to dive, Claire Barrett, APIsFirst
apidays London 2023 - When to soar and when to dive, Claire Barrett, APIsFirst
apidays22 views

Último

Product Research sample.pdf von
Product Research sample.pdfProduct Research sample.pdf
Product Research sample.pdfAllenSingson
35 views29 Folien
LIVE OAK MEMORIAL PARK.pptx von
LIVE OAK MEMORIAL PARK.pptxLIVE OAK MEMORIAL PARK.pptx
LIVE OAK MEMORIAL PARK.pptxms2332always
9 views6 Folien
[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptx von
[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptx[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptx
[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptxDataScienceConferenc1
5 views15 Folien
Custom Tag Manager Templates von
Custom Tag Manager TemplatesCustom Tag Manager Templates
Custom Tag Manager TemplatesMarkus Baersch
31 views17 Folien
PyData Global 2022 - Things I learned while running neural networks on microc... von
PyData Global 2022 - Things I learned while running neural networks on microc...PyData Global 2022 - Things I learned while running neural networks on microc...
PyData Global 2022 - Things I learned while running neural networks on microc...SARADINDU SENGUPTA
6 views12 Folien
OPPOTUS - Malaysians on Malaysia 3Q2023.pdf von
OPPOTUS - Malaysians on Malaysia 3Q2023.pdfOPPOTUS - Malaysians on Malaysia 3Q2023.pdf
OPPOTUS - Malaysians on Malaysia 3Q2023.pdfOppotus
36 views19 Folien

Último(20)

Product Research sample.pdf von AllenSingson
Product Research sample.pdfProduct Research sample.pdf
Product Research sample.pdf
AllenSingson35 views
[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptx von DataScienceConferenc1
[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptx[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptx
[DSC Europe 23] Branka Panic - Peace in the age of artificial intelligence.pptx
PyData Global 2022 - Things I learned while running neural networks on microc... von SARADINDU SENGUPTA
PyData Global 2022 - Things I learned while running neural networks on microc...PyData Global 2022 - Things I learned while running neural networks on microc...
PyData Global 2022 - Things I learned while running neural networks on microc...
OPPOTUS - Malaysians on Malaysia 3Q2023.pdf von Oppotus
OPPOTUS - Malaysians on Malaysia 3Q2023.pdfOPPOTUS - Malaysians on Malaysia 3Q2023.pdf
OPPOTUS - Malaysians on Malaysia 3Q2023.pdf
Oppotus36 views
DGIQ East 2023 AI Ethics SIG von Karen Lopez
DGIQ East 2023 AI Ethics SIGDGIQ East 2023 AI Ethics SIG
DGIQ East 2023 AI Ethics SIG
Karen Lopez6 views
Dr. Ousmane Badiane-2023 ReSAKSS Conference von AKADEMIYA2063
Dr. Ousmane Badiane-2023 ReSAKSS ConferenceDr. Ousmane Badiane-2023 ReSAKSS Conference
Dr. Ousmane Badiane-2023 ReSAKSS Conference
AKADEMIYA20636 views
Customer Data Cleansing Project.pptx von Nat O
Customer Data Cleansing Project.pptxCustomer Data Cleansing Project.pptx
Customer Data Cleansing Project.pptx
Nat O7 views
6498-Butun_Beyinli_Cocuq-Daniel_J.Siegel-Tina_Payne_Bryson-2011-259s.pdf von 10urkyr34
6498-Butun_Beyinli_Cocuq-Daniel_J.Siegel-Tina_Payne_Bryson-2011-259s.pdf6498-Butun_Beyinli_Cocuq-Daniel_J.Siegel-Tina_Payne_Bryson-2011-259s.pdf
6498-Butun_Beyinli_Cocuq-Daniel_J.Siegel-Tina_Payne_Bryson-2011-259s.pdf
10urkyr348 views
4_4_WP_4_06_ND_Model.pptx von d6fmc6kwd4
4_4_WP_4_06_ND_Model.pptx4_4_WP_4_06_ND_Model.pptx
4_4_WP_4_06_ND_Model.pptx
d6fmc6kwd47 views
Pydata Global 2023 - How can a learnt model unlearn something von SARADINDU SENGUPTA
Pydata Global 2023 - How can a learnt model unlearn somethingPydata Global 2023 - How can a learnt model unlearn something
Pydata Global 2023 - How can a learnt model unlearn something
Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language... von patiladiti752
Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language...Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language...
Enhancing Financial Sentiment Analysis via Retrieval Augmented Large Language...
patiladiti7529 views

apidays London 2023 - Why and how to apply DDD to APIs, Radhouane Jrad, QBE Europe

  • 1. Domain Driven Design 2023 © Mother Earth Radhouane Jrad
  • 2. The Plan • DDD in General (History, etc.) • Designing in DDD • Implementing DDD: Use-Case • Implementing DDD Principles • DDD & Horizontal Scalability • Principles Guiding API Governance 02/23
  • 3. Disclaimer DDD is a rich, complex, sometimes antagonistic topic. This presentation is an implementation of DDD and some aspects may differ from other implementations. The views in this presentation fairly (but not fully) adhere to standard DDD concepts. 03/23
  • 4. Mantra As a developer, it is your understanding, rather than your knowledge, that becomes software! Alberto Brandolini 04/23
  • 6. How Did We Get to DDD? Business Model Business Domain Domain Driven Design • Describes core aspects of company’s values (economic, social, environmental, etc.) & how it ‘lives’ them • Reflects rationale of a company’s purposes, processes, markets, products & services, strategies, infrastructure, operational processes, policies, etc. Business Strategy • Defines goals of the company • Competitive matters: How to fight & compete? What are our strengths & weaknesses? Where are market opportunities? Lateral concerns (social, societal, environmental, etc.) • Different to Operational Strategy (efficiency, cost mgmt., etc.) Corporate Strategy • Existential matters: • What business should we be in? • What business should we NOT be in? • Essentially, 2 types of models: • Linear (aka Pipes): upstream production & downstream consumption, e.g. ink > pen + lid > wholesale • Networked (aka Platforms): multi-directional exchange (e.g. Digital Transformation) • We start getting technical: • A “simple view” of a “complex Reality (UML) • Class-based representation of objects being implemented • Generated through Business Modelling & designed by Business Analysts. • Categorises the set of business systems that represent autonomous units of the business modeled during Business Analysis. Strategy Operations Infrastructure • Aim is to structure the code and its language to reflect the Business Domain • e.g. Class ClaimApplication; + Class Customer + method approveClaim + method rejectClaim 06/23
  • 7. The Concept of Domain Driven Design Business Domain Domain Driven Design • We start getting technical: • A “simple view” of a “complex Reality (UML) • Class-based representation of objects being implemented • Generated through Business Modelling & designed by Business Analysts. • Categorises the set of business systems that represent autonomous units of the business modeled during Business Analysis. • Aim is to structure the code and its language to reflect the Business Domain • e.g. Class ClaimApplication; + Class Customer + method approveClaim + method rejectClaim 06/23
  • 8. When to Use DDD? 07/23
  • 10. DDD Strategic Tools 09/23 Sleeping Compartment Engine Room Logistics Kitchen Captain’s Corner Viewing Deck Gathering Area
  • 11. DDD Strategic Tools 10/23 Dining Room Kitchen Master Bedroom Garage Guests Room Living Room Kid’s Room Master Storage Storage Front Lawn Shower/WC
  • 13. Insurance Example Customer = Active policies, historical policies, MTA Domain: Policy Customer = Open claims, historical claims, NCD status Domain: Claim Customer = Name, physical address, mobile no. Domain: Party DB API DB API DB API 12/23
  • 14. Case Study: Integration for Insurance 13/23
  • 15. Policy Domains Cross-Contamination 14/23 Claims DGL API AL API ACL API DGL API AL API ACL API Consumer A Sys. Of. Rec X Claims
  • 16. Policy Domain Gateway Layer APIs 15/23 Claims DGL API AL API ACL API DGL API AL API ACL API Consumer A Sys. Of. Rec • DGL API act as gateway to the domain • Every domain’s Abstract Layer is constructed, developed, and maintained ignoring other domains • Every domain’s ACL is constructed, developed, and maintained ignoring other domains • Security, Infrastructure,Testing, and Asset Reusability requirements are easy to address • Usually one DGL API per Domain.
  • 17. Domain Gateway Layer APIs 16/23
  • 18. Claims Policy The Case of a Common System of Records 17/23 DGL API AL API ACL API DGL API ACL API Consumer A Sys. Of. Rec Consumer B X
  • 19. Claims Policy Anti-Corruption Layer 17/23 DGL API AL API ACL API DGL API ACL API Consumer A Sys. Of. Rec Consumer B Claim Processes Need Policy no? Policy Processes
  • 20. DDD & Horizontal Scalability 18/23
  • 21. Instance A (1 CPU Unit) DDD & Horizontal Scalability 19/23 Step 1 Step 2 Step 3 Step 4 Step 5 Instance B (1 CPU Unit) Step 1 Step 2 Step 3 Step 4 Step 5 Queues Queues
  • 23. Principles Guiding API Governance 21/23 Structural Principles Feedback-Based Design (DSR) SOLiD: •Single Responsibility Principle (SRP) •Open/Close Principle (OCP) •Liskov, Interface Segregation Principle (ISP) •Dependency Inversion Principles Reusability Primacy of Principles Domain Driven Design Separation of Concerns Three-layered Architecture API-Led Architecture YAGNI Minimise Coupling KISS Git-based Version Control O-Auth based Security C-back with JWT Asset exposure (Marketplace) IPaaS (Managed Services) API Catalogue Logging Smart Endpoints, Dumb Pipelines Asynchronous vs. Synchronous Queues vs. EDA vs. Pub/Sub Driving Principles Technological Baseline Security By Design Horizontal vs. Vertical Scalability Singular Technology Integration Inventory Load Balancers REST vs. SOAP Component Based Statelessness
  • 24. API Building Blocks 22/23 Domain Driven Design API-Led Design Pattern Horizontal- First Scalability REST-first , JSON-first Integration iPaaS Security By Design Product- based Reusability; Evolvability; Extensibility; Security; Cost-Effectiveness; Auditability; Clarity; Simplicity/Simplification…