SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Dependency Inversion Using
Ports and Adapters
Mahfuzul Haque
@mhaque2012
Agenda
● The problem
● The idea
● The aims
● Evolution of an existing application
● The concepts
● Show me the code
2
The problem
Over time core business logic of an application becomes tightly coupled with
various libraries, frameworks and technologies making it harder to evolve and test.
Challenges:
● Long lasting product that needs to keep up with changing customer needs
and evolution of technology.
● Ability to change core logic confidently with 100% unit test coverage.
● Ability to switch third party codes easily to avoid obsolete code due to
technology/vendor lock-down.
3
The idea
Ports and Adapters Architecture (Alistair Cockburn)
"Allow an application to equally be driven by users, programs, automated test or
batch scripts, and to be developed and tested in isolation from its eventual run-
time devices and databases."
This architecture is also known as:
● Hexagonal Architecture
● Plug-in Architecture
4
The aims
● Decoupling application's core business logic from the services it uses.
● Allowing different services to be plugged in.
● Allowing the application to be run without these services.
● Allowing it to become framework agnostic.
5
An existing application (order processing)
Here core business logic is coupled with UI
and various libraries, frameworks and
technologies:
● Leakage of external libraries and
technologies in the core logic by direct
dependency.
● Leakage of core logic in the UI which is
not reusable in other UI.
● Leakage of the UI into the core logic.
6
Core
Application
Logic
API
Controllers
Console
Commands
GUI
Controllers
Payment
Shipping
Notification
Data Access
(ORM)
Evolution using ports and adapters
7
Core
Application
Logic
API
Controllers
Console
Commands
GUI
Controllers
Payment
Shipping
Notification
Data Access
(ORM)
Primary/Driving Adapters Secondary/Driven Adapters
The concepts
● Core as the central artefact of a system.
● All input and output reaches/leaves the core through a port that isolates the
core from external tools, technologies and delivery mechanisms.
● The core should have no knowledge of who/what is sending input or receiving
its output.
● This is intended to provide some protection against the evolution of
technology.
8
The concepts
Primary Port
(interface)
Primary Adapter
Secondary Port
(interface)
Core Logic
Secondary Adapter
9
The concepts (an example)
IOrderService
API Controller
IPaymentService
OrderService
PaymentService
Dependency
Dependency
10
Show me the code
https://github.com/git-mhaque/demo-ports-and-adapters 11
Q & A
12
References
http://wiki.c2.com/?PortsAndAdaptersArchitecture
http://wiki.c2.com/?HexagonalArchitecture
http://www.dossier-andreas.net/software_architecture/ports_and_adapters.html
https://medium.com/the-software-architecture-chronicles/ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together-f2590c0aa7f6
https://herbertograca.com/2017/09/14/ports-adapters-architecture/
http://blog.thedigitalgroup.com/understanding-onion-architecture
13
Thank You!
14

Weitere ähnliche Inhalte

Was ist angesagt?

Innovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open InterfacesInnovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open Interfaces
Steve Speicher
 

Was ist angesagt? (20)

Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...
Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...
Towards Scalable Validation of Low-Code System Models: Mapping EVL to VIATRA ...
 
Resume_Amarjit
Resume_AmarjitResume_Amarjit
Resume_Amarjit
 
Debugging AI
Debugging AIDebugging AI
Debugging AI
 
2019 04-13 ai for .net developers (fwdays)
2019 04-13 ai for .net developers (fwdays)2019 04-13 ai for .net developers (fwdays)
2019 04-13 ai for .net developers (fwdays)
 
Igor Kochetov "What is wrong with Dependency Injection? Myths and Truths"
Igor Kochetov "What is wrong with Dependency Injection? Myths and Truths"Igor Kochetov "What is wrong with Dependency Injection? Myths and Truths"
Igor Kochetov "What is wrong with Dependency Injection? Myths and Truths"
 
Arquillian 소개
Arquillian 소개Arquillian 소개
Arquillian 소개
 
Introduction to Open Services for Lifecycle Collaboration (OSLC)
Introduction to Open Services for Lifecycle Collaboration (OSLC)Introduction to Open Services for Lifecycle Collaboration (OSLC)
Introduction to Open Services for Lifecycle Collaboration (OSLC)
 
BI Studio profile
BI Studio profileBI Studio profile
BI Studio profile
 
Shrilesh kathe 2017
Shrilesh kathe 2017Shrilesh kathe 2017
Shrilesh kathe 2017
 
Deepali's resume
Deepali's resumeDeepali's resume
Deepali's resume
 
ALT-F1 Techtalk 3 - Google AppEngine
ALT-F1 Techtalk 3 - Google AppEngineALT-F1 Techtalk 3 - Google AppEngine
ALT-F1 Techtalk 3 - Google AppEngine
 
Radhakrishnan Moni
Radhakrishnan MoniRadhakrishnan Moni
Radhakrishnan Moni
 
Architecting the Transformation (V1.2)
Architecting the Transformation (V1.2)Architecting the Transformation (V1.2)
Architecting the Transformation (V1.2)
 
GDG Cloud meetup november 2019 - kubeflow pipelines
GDG Cloud meetup november 2019 -  kubeflow pipelinesGDG Cloud meetup november 2019 -  kubeflow pipelines
GDG Cloud meetup november 2019 - kubeflow pipelines
 
Lucidchart Connect Amsterdam: Lucidchart @ Lavego
Lucidchart Connect Amsterdam: Lucidchart @ LavegoLucidchart Connect Amsterdam: Lucidchart @ Lavego
Lucidchart Connect Amsterdam: Lucidchart @ Lavego
 
Resume_DevayaniVernekar
Resume_DevayaniVernekarResume_DevayaniVernekar
Resume_DevayaniVernekar
 
Innovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open InterfacesInnovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open Interfaces
 
A Decentralized Reference Architecture for Cloud-native Applications V2.0
A Decentralized Reference Architecture for Cloud-native Applications  V2.0A Decentralized Reference Architecture for Cloud-native Applications  V2.0
A Decentralized Reference Architecture for Cloud-native Applications V2.0
 
Data Science Meets DevOps: GitOps with OpenShift (1).pdf
Data Science Meets DevOps: GitOps with OpenShift (1).pdfData Science Meets DevOps: GitOps with OpenShift (1).pdf
Data Science Meets DevOps: GitOps with OpenShift (1).pdf
 
Web Programming - 11 SweetAlert2, DataTables, and WYSIWYG API
Web Programming - 11 SweetAlert2, DataTables, and WYSIWYG APIWeb Programming - 11 SweetAlert2, DataTables, and WYSIWYG API
Web Programming - 11 SweetAlert2, DataTables, and WYSIWYG API
 

Ähnlich wie Dependency inversion using ports and adapters

Plc free peresentation111111111111111111111111111.pdf
Plc free peresentation111111111111111111111111111.pdfPlc free peresentation111111111111111111111111111.pdf
Plc free peresentation111111111111111111111111111.pdf
HussamALshamaj
 
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
Dominik Obermaier
 
CAM PRESENTATION AFAQ, DANISH.pptx
CAM PRESENTATION AFAQ, DANISH.pptxCAM PRESENTATION AFAQ, DANISH.pptx
CAM PRESENTATION AFAQ, DANISH.pptx
MuhammadAfaq91
 
Embedded system.pptx
Embedded system.pptxEmbedded system.pptx
Embedded system.pptx
Saransh Garg
 

Ähnlich wie Dependency inversion using ports and adapters (20)

Resume
ResumeResume
Resume
 
TechTalk: Get to Know Perfecto
TechTalk: Get to Know Perfecto TechTalk: Get to Know Perfecto
TechTalk: Get to Know Perfecto
 
Plc free peresentation111111111111111111111111111.pdf
Plc free peresentation111111111111111111111111111.pdfPlc free peresentation111111111111111111111111111.pdf
Plc free peresentation111111111111111111111111111.pdf
 
Basic PLC Training .pdf
Basic PLC Training .pdfBasic PLC Training .pdf
Basic PLC Training .pdf
 
Eurotech M2M Building Blocks and Multi-Service Gateway Approach
Eurotech M2M Building Blocks and Multi-Service Gateway ApproachEurotech M2M Building Blocks and Multi-Service Gateway Approach
Eurotech M2M Building Blocks and Multi-Service Gateway Approach
 
Design Like a Pro: Planning Enterprise Solutions
Design Like a Pro: Planning Enterprise SolutionsDesign Like a Pro: Planning Enterprise Solutions
Design Like a Pro: Planning Enterprise Solutions
 
Design Like a Pro: Planning Enterprise Solutions
Design Like a Pro: Planning Enterprise SolutionsDesign Like a Pro: Planning Enterprise Solutions
Design Like a Pro: Planning Enterprise Solutions
 
Summer Internship Report on PLC
Summer Internship Report on PLCSummer Internship Report on PLC
Summer Internship Report on PLC
 
Ia rm001 -en-p
Ia rm001 -en-pIa rm001 -en-p
Ia rm001 -en-p
 
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
Software-Infrastrukturen modernisieren in der Produktion - Digitale Transform...
 
Java Micro Edition (ME) 8 Deep Dive
Java Micro Edition (ME) 8 Deep DiveJava Micro Edition (ME) 8 Deep Dive
Java Micro Edition (ME) 8 Deep Dive
 
Summer Internship Report For PLC Programming of Traffic light through Ladder ...
Summer Internship Report For PLC Programming of Traffic light through Ladder ...Summer Internship Report For PLC Programming of Traffic light through Ladder ...
Summer Internship Report For PLC Programming of Traffic light through Ladder ...
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
 
Omni-Path Status, Upstreaming and Ongoing Work
Omni-Path Status, Upstreaming and Ongoing WorkOmni-Path Status, Upstreaming and Ongoing Work
Omni-Path Status, Upstreaming and Ongoing Work
 
10 Steps to Architecting a Sustainable SCADA System
10 Steps to Architecting a Sustainable SCADA System10 Steps to Architecting a Sustainable SCADA System
10 Steps to Architecting a Sustainable SCADA System
 
CAM PRESENTATION AFAQ, DANISH.pptx
CAM PRESENTATION AFAQ, DANISH.pptxCAM PRESENTATION AFAQ, DANISH.pptx
CAM PRESENTATION AFAQ, DANISH.pptx
 
10 Steps to Architecting a Sustainable SCADA System
10 Steps to Architecting a Sustainable SCADA System10 Steps to Architecting a Sustainable SCADA System
10 Steps to Architecting a Sustainable SCADA System
 
OPC -Connectivity using Java
OPC -Connectivity using JavaOPC -Connectivity using Java
OPC -Connectivity using Java
 
SPS IPC Drives 2015 - Itris Automation paper
SPS IPC Drives 2015 - Itris Automation paperSPS IPC Drives 2015 - Itris Automation paper
SPS IPC Drives 2015 - Itris Automation paper
 
Embedded system.pptx
Embedded system.pptxEmbedded system.pptx
Embedded system.pptx
 

Mehr von Mahfuzul Haque

Talk 2011-buet-perception-event
Talk 2011-buet-perception-eventTalk 2011-buet-perception-event
Talk 2011-buet-perception-event
Mahfuzul Haque
 
Talk 2010-monash-seminar-panic-driven-event-detection
Talk 2010-monash-seminar-panic-driven-event-detectionTalk 2010-monash-seminar-panic-driven-event-detection
Talk 2010-monash-seminar-panic-driven-event-detection
Mahfuzul Haque
 
Talk 2009-monash-seminar-perception
Talk 2009-monash-seminar-perceptionTalk 2009-monash-seminar-perception
Talk 2009-monash-seminar-perception
Mahfuzul Haque
 
Talk 2009-monash-seminar-intelligent-video-surveillance
Talk 2009-monash-seminar-intelligent-video-surveillanceTalk 2009-monash-seminar-intelligent-video-surveillance
Talk 2009-monash-seminar-intelligent-video-surveillance
Mahfuzul Haque
 
Talk 2009-monash-open-day-surveillance
Talk 2009-monash-open-day-surveillanceTalk 2009-monash-open-day-surveillance
Talk 2009-monash-open-day-surveillance
Mahfuzul Haque
 
Talk 2007-monash-seminar-behavior-recognition-framework
Talk 2007-monash-seminar-behavior-recognition-frameworkTalk 2007-monash-seminar-behavior-recognition-framework
Talk 2007-monash-seminar-behavior-recognition-framework
Mahfuzul Haque
 
Kb behaviour-recognition
Kb behaviour-recognitionKb behaviour-recognition
Kb behaviour-recognition
Mahfuzul Haque
 
Talk 2012-icmew-perception
Talk 2012-icmew-perceptionTalk 2012-icmew-perception
Talk 2012-icmew-perception
Mahfuzul Haque
 
Poster: Monash Research Month 2009
Poster: Monash Research Month 2009Poster: Monash Research Month 2009
Poster: Monash Research Month 2009
Mahfuzul Haque
 
Poster: Monash Research Month 2008
Poster: Monash Research Month 2008Poster: Monash Research Month 2008
Poster: Monash Research Month 2008
Mahfuzul Haque
 
Poster: Monash Research Month 2007
Poster: Monash Research Month 2007Poster: Monash Research Month 2007
Poster: Monash Research Month 2007
Mahfuzul Haque
 
Poster: EII Workshop 2007
Poster: EII Workshop 2007Poster: EII Workshop 2007
Poster: EII Workshop 2007
Mahfuzul Haque
 
Poster: EII Winter School 2007
Poster: EII Winter School 2007Poster: EII Winter School 2007
Poster: EII Winter School 2007
Mahfuzul Haque
 

Mehr von Mahfuzul Haque (20)

Resilient machine learning systems for health analytics
Resilient machine learning systems for health analyticsResilient machine learning systems for health analytics
Resilient machine learning systems for health analytics
 
Talk 2012-icmew-event
Talk 2012-icmew-eventTalk 2012-icmew-event
Talk 2012-icmew-event
 
Talk 2011-buet-perception-event
Talk 2011-buet-perception-eventTalk 2011-buet-perception-event
Talk 2011-buet-perception-event
 
Talk 2010-monash-seminar-panic-driven-event-detection
Talk 2010-monash-seminar-panic-driven-event-detectionTalk 2010-monash-seminar-panic-driven-event-detection
Talk 2010-monash-seminar-panic-driven-event-detection
 
Talk 2009-monash-seminar-perception
Talk 2009-monash-seminar-perceptionTalk 2009-monash-seminar-perception
Talk 2009-monash-seminar-perception
 
Talk 2009-monash-seminar-intelligent-video-surveillance
Talk 2009-monash-seminar-intelligent-video-surveillanceTalk 2009-monash-seminar-intelligent-video-surveillance
Talk 2009-monash-seminar-intelligent-video-surveillance
 
Talk 2009-monash-open-day-surveillance
Talk 2009-monash-open-day-surveillanceTalk 2009-monash-open-day-surveillance
Talk 2009-monash-open-day-surveillance
 
Talk 2007-monash-seminar-behavior-recognition-framework
Talk 2007-monash-seminar-behavior-recognition-frameworkTalk 2007-monash-seminar-behavior-recognition-framework
Talk 2007-monash-seminar-behavior-recognition-framework
 
Kb hmm
Kb hmmKb hmm
Kb hmm
 
Kb gait-recognition
Kb gait-recognitionKb gait-recognition
Kb gait-recognition
 
Kb behaviour-recognition
Kb behaviour-recognitionKb behaviour-recognition
Kb behaviour-recognition
 
Talk 2012-icmew-perception
Talk 2012-icmew-perceptionTalk 2012-icmew-perception
Talk 2012-icmew-perception
 
Poster: Monash Research Month 2009
Poster: Monash Research Month 2009Poster: Monash Research Month 2009
Poster: Monash Research Month 2009
 
Poster: Monash Research Month 2008
Poster: Monash Research Month 2008Poster: Monash Research Month 2008
Poster: Monash Research Month 2008
 
Poster: Monash Research Month 2007
Poster: Monash Research Month 2007Poster: Monash Research Month 2007
Poster: Monash Research Month 2007
 
Poster: ICPR 2008
Poster: ICPR 2008Poster: ICPR 2008
Poster: ICPR 2008
 
Poster: ICME 2010
Poster: ICME 2010Poster: ICME 2010
Poster: ICME 2010
 
Poster: EII Workshop 2007
Poster: EII Workshop 2007Poster: EII Workshop 2007
Poster: EII Workshop 2007
 
Poster: EII Winter School 2007
Poster: EII Winter School 2007Poster: EII Winter School 2007
Poster: EII Winter School 2007
 
Poster: AVSS 2012
Poster: AVSS 2012Poster: AVSS 2012
Poster: AVSS 2012
 

Kürzlich hochgeladen

%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Kürzlich hochgeladen (20)

OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
Artyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptxArtyushina_Guest lecture_YorkU CS May 2024.pptx
Artyushina_Guest lecture_YorkU CS May 2024.pptx
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AI
 
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
WSO2Con2024 - From Blueprint to Brilliance: WSO2's Guide to API-First Enginee...
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 

Dependency inversion using ports and adapters