SlideShare a Scribd company logo
1 of 114
Download to read offline
HIDING THE LEAD
COUPLING, COHESION AND MICROSERVICES
Sam Newman
https://www.flickr.com/photos/spongebabyalwaysfull/8793058944/
@samnewman
Sam Newman
Building
Microservices
DESIGNING FINE-GRAINED SYSTEMS
@samnewman
NEW BOOK!
https://samnewman.io/books/monolith-to-microservices/
@samnewman
INDEPENDENT DEPLOYABILITY
Inventory
Returns
Invoicing
Accounts
v1
Customer
Service
Shipping
@samnewman
INDEPENDENT DEPLOYABILITY
Inventory
Returns
Invoicing
Customer
Service
Shipping
Accounts
v2
@samnewman
INDEPENDENT DEPLOYABILITY
Inventory
Returns
Invoicing
Customer
Service
Shipping
Accounts
v2
@samnewman
Customer
Service
Accounts
v1
Independent deployability
requires interface stability
Maintaining backwards
compatibility is key
@samnewman
Customer
Service
Accounts
v2
Independent deployability
requires interface stability
Maintaining backwards
compatibility is key
@samnewman
Customer
Service
Accounts
v2
Independent deployability
requires interface stability
Maintaining backwards
compatibility is key
@samnewman
https://www.flickr.com/photos/photographingtravis/16939917735/
@samnewman
MODULES
@samnewman
MODULES
Module A
Module D
Module B
Module C
Module E
@samnewman
MODULES
Module A
Module D
Module B
Module C
Module E
Allow for
independent
working
@samnewman
MODULES
Module A
Module D
Module B
Module C
Module E
Allow for
independent
working
And reuse
@samnewman
MODULES
Module A
Module D
Module B
Module C
Module E
Allow for
independent
working
And reuse
Namespaces,
packages
@samnewman
MODULES
Module A
Module D
Module B
Module C
Module E
Allow for
independent
working
And reuse
Namespaces,
packages
NPMs, Gems,
JARs etc
@samnewman
AND MICROSERVICES?
Module A
Module DModule B
Module C
Module E
@samnewman
AND MICROSERVICES?
Module A
Module DModule B
Module C
Module E
“Modules” run on different
computers
@samnewman
AND MICROSERVICES?
Module A
Module DModule B
Module C
Module E
Communication
between
modules is done
via network calls
“Modules” run on different
computers
@samnewman
AND MICROSERVICES?
Module A
Module DModule B
Module C
Module E
Communication
between
modules is done
via network calls
“Modules” run on different
computers
Allows for easier
independent deployability
@samnewman
Microservices, when done right, are a form of modular
architecture
@samnewmanhttps://www.flickr.com/photos/ibm_media/33838065805/
@samnewman
INFORMATION HIDING
http://repository.cmu.edu/cgi/viewcontent.cgi?article=2979&context=compsci
@samnewman
INFORMATION HIDING
http://repository.cmu.edu/cgi/viewcontent.cgi?article=2979&context=compsci
Published in 1971
@samnewman
INFORMATION HIDING
http://repository.cmu.edu/cgi/viewcontent.cgi?article=2979&context=compsci
Published in 1971
Looked at how best to define
module boundaries
@samnewman
INFORMATION HIDING
http://repository.cmu.edu/cgi/viewcontent.cgi?article=2979&context=compsci
Published in 1971
Looked at how best to define
module boundaries
Found that “information hiding”
worked best
@samnewman
INFORMATION HIDING AND MICROSERVICES
https://blog.acolyer.org/2016/09/05/on-the-criteria-to-be-used-in-decomposing-systems-into-modules/
@samnewman
Accounts
NOT HIDING?
@samnewman
Accounts
NOT HIDING?
Shipping
@samnewman
Accounts
NOT HIDING?
Shipping
If an upstream consumer
can reach into your internal
implementation..
@samnewman
Accounts
NOT HIDING?
Shipping
If an upstream consumer
can reach into your internal
implementation..
…then you can’t change
this implementation without
breaking the consumer
@samnewman
Accounts
NOT HIDING?
Shipping
If an upstream consumer
can reach into your internal
implementation..
…then you can’t change
this implementation without
breaking the consumer
@samnewman
Accounts
NOT HIDING?
Shipping
If an upstream consumer
can reach into your internal
implementation..
…then you can’t change
this implementation without
breaking the consumer
@samnewman
HIDING!
Accounts
Shipping
@samnewman
HIDING!
Accounts
Shipping
Hide your secrets!
Hidden
@samnewman
HIDING!
Accounts
Shipping
Hide your secrets!
Be explicit about what is
shared, and what is
hidden
Hidden
@samnewman
HIDING!
Accounts
Shipping
Hide your secrets!
Be explicit about what is
shared, and what is
hidden
Shared
Hidden
@samnewman
HIDING!
Accounts
Shipping
Hide your secrets!
Be explicit about what is
shared, and what is
hidden
Shared
Hidden
@samnewman
HIDING!
Accounts
Shipping
Hide your secrets!
Be explicit about what is
shared, and what is
hidden
Shared
Hidden
Hidden things can
change, shared things
can’t
@samnewman
ACCIDENTAL BREAKAGE
public class Customer {
private int id;
private String name;
private int age;
…
}
Code
@samnewman
ACCIDENTAL BREAKAGE
public class Customer {
private int id;
private String name;
private int age;
…
}
Code
@samnewman
ACCIDENTAL BREAKAGE
public class Customer {
private int id;
private String name;
private int age;
…
}
Code
{
“id” : 123,
“name” : “sam”,
“age” : 15
}
JSON
@samnewman
ACCIDENTAL BREAKAGE
public class Customer {
private int id;
private String name;
private int age;
…
}
Code
{
“id” : 123,
“name” : “sam”,
“age” : 15
}
JSON
@samnewman
ACCIDENTAL BREAKAGE
public class Customer {
private int id;
private String name;
private int age;
…
}
Code
{
“id” : 123,
“name” : “sam”,
“age” : 15
}
JSON
public class Customer {
private int id;
private String name;
private LocalDate dob;
…
}
Code
@samnewman
ACCIDENTAL BREAKAGE
public class Customer {
private int id;
private String name;
private int age;
…
}
Code
{
“id” : 123,
“name” : “sam”,
“age” : 15
}
JSON
public class Customer {
private int id;
private String name;
private LocalDate dob;
…
}
Code
@samnewman
ACCIDENTAL BREAKAGE
public class Customer {
private int id;
private String name;
private int age;
…
}
Code
{
“id” : 123,
“name” : “sam”,
“age” : 15
}
JSON
public class Customer {
private int id;
private String name;
private LocalDate dob;
…
}
Code
{
“id” : 123,
“name” : “sam”,
“dob” : 15/02/1974
}
JSON
@samnewman
DATA TRANSFER OBJECT
https://martinfowler.com/eaaCatalog/dataTransferObject.html
Customer
@samnewman
DATA TRANSFER OBJECT
https://martinfowler.com/eaaCatalog/dataTransferObject.html
Customer
public class Customer {
private int id;
private String name;
private LocalDate dob;
…
}
@samnewman
DATA TRANSFER OBJECT
https://martinfowler.com/eaaCatalog/dataTransferObject.html
Customer
public class Customer {
private int id;
private String name;
private LocalDate dob;
…
}
public class CustomerDTO {
private int id;
private String name;
private int age;
…
}
@samnewman
DATA TRANSFER OBJECT
https://martinfowler.com/eaaCatalog/dataTransferObject.html
Customer
public class Customer {
private int id;
private String name;
private LocalDate dob;
…
}
public class CustomerDTO {
private int id;
private String name;
private int age;
…
}
{
“id” : 123,
“name” : “sam”,
“age” : 15
}
JSON
@samnewman
AND CONNECTIONS BETWEEN THEM?
@samnewman
AND CONNECTIONS BETWEEN THEM?
“The connections between
modules are the assumptions
which the modules make
about each other.”
- David Parnas
@samnewman
AND CONNECTIONS BETWEEN THEM?
“The connections between
modules are the assumptions
which the modules make
about each other.”
- David Parnas
Information hiding is about
reducing the assumptions
one module has for another
@samnewman
EXPLICIT CONTRACTS?
Module DModule B
@samnewman
EXPLICIT CONTRACTS?
Module DModule B
@samnewman
EXPLICIT CONTRACTS?
Module DModule B
Need an explicit understanding of
the assumptions of consumers
@samnewman
EXPLICIT CONTRACTS?
Module DModule B
Need an explicit understanding of
the assumptions of consumers
To help us understand what can
change easily, and what cannot
@samnewman
EXPLICIT CONTRACTS?
Module DModule B
Need an explicit understanding of
the assumptions of consumers
To help us understand what can
change easily, and what cannot
Schemas can help!
@samnewman
Schemas FTW!
@samnewman
SCHEMAS
https://json-schema.org/ https://developers.google.com/protocol-buffers/
@samnewman
CHECKING SCHEMA COMPATIBILITY
https://protolock.dev/
@samnewman
And of course testing…
@samnewman
STRUCTURED PROGRAMMING
@samnewman
COUPLING AND COHESION
@samnewman
COUPLING AND COHESION
Coupling
@samnewman
COUPLING AND COHESION
Coupling Cohesion
@samnewman
COUPLING AND COHESION
Coupling Cohesion
Low
@samnewman
COUPLING AND COHESION
Coupling Cohesion
Low Strong
@samnewman
COHESION
The code that changes together, stays together
@samnewman
WEAK COHESION
@samnewman
WEAK COHESION
@samnewman
COUPLING
The degree to which changing one module requires a
change in another
@samnewman
CONSTANTINE’S LAW
“A structure is stable if cohesion is strong and coupling is low.”
- Albert Endres and Dieter Rombach
@samnewman
TYPES OF COUPLING
@samnewman
TYPES OF COUPLING
Domain
@samnewman
TYPES OF COUPLING
Domain Tramp
@samnewman
TYPES OF COUPLING
Domain CommonTramp
@samnewman
TYPES OF COUPLING
Domain Common ContentTramp
@samnewman
TYPES OF COUPLING
Domain Common ContentTramp
@samnewman
TYPES OF COUPLING
Domain Common Content
Increasing coupling
Tramp
@samnewman
DOMAIN COUPLING
Order Processor
Warehouse
Reserve Stock
Payment
Take Payment
@samnewman
DOMAIN COUPLING
Order Processor
Warehouse
Reserve Stock
Payment
Take Payment
Domain Coupling
@samnewman
TRAMP COUPLING
@samnewman
Order Processor
TRAMP COUPLING
@samnewman
Order Processor Warehouse
TRAMP COUPLING
@samnewman
Order Processor Warehouse
Shipping Manifest
Send Order Request
# Item ID
3 2231
2 134
TRAMP COUPLING
@samnewman
Order Processor
Shipping
Warehouse
Shipping Manifest
Send Order Request
# Item ID
3 2231
2 134
TRAMP COUPLING
@samnewman
Order Processor
Shipping
Warehouse
Shipping Manifest
Send Order Request
# Item ID
3 2231
2 134
TRAMP COUPLING
Shipping Manifest
Dispatch Package
Request
@samnewman
AVOIDING TRAMP COUPLING
@samnewman
AVOIDING TRAMP COUPLING
Order Processor
@samnewman
AVOIDING TRAMP COUPLING
Order Processor Warehouse
@samnewman
AVOIDING TRAMP COUPLING
Order Processor Warehouse
Send Order Request
# Item ID
3 2231
2 134
@samnewman
AVOIDING TRAMP COUPLING
Order Processor
Shipping
Warehouse
Send Order Request
# Item ID
3 2231
2 134
@samnewman
AVOIDING TRAMP COUPLING
Order Processor
Shipping
Warehouse
Shipping Manifest
Send Order Request
# Item ID
3 2231
2 134
@samnewman
AVOIDING TRAMP COUPLING (CONT)
Order Processor Warehouse
Shipping
1342
22313
ItemID#
Send Order Request
Shipping Manifest
Dispatch Package Request
123 The Place, UK
Express Shipping
@samnewman
COMMON COUPLING
Warehouse
@samnewman
COMMON COUPLING
Warehouse
Stock Levels
@samnewman
COMMON COUPLING
Warehouse
Stock Levels
@samnewman
COMMON COUPLING
Warehouse
Stock Levels Order Processor
@samnewman
COMMON COUPLING
Warehouse
Stock Levels Order ProcessorForecasting
@samnewman
COMMON COUPLING
Warehouse
Stock Levels Order ProcessorForecasting
Change to the common data
impacts multiple microservices
@samnewman
CONTENT COUPLING
Order ID Status
123 PLACED
456 SHIPPED
@samnewman
CONTENT COUPLING
Order ID Status
123 PLACED
456 SHIPPED
Order Processor
@samnewman
CONTENT COUPLING
Order ID Status
123 PLACED
456 SHIPPED
WarehouseOrder Processor
@samnewman
CONTENT COUPLING
Order ID Status
123 PLACED
456 SHIPPED
WarehouseOrder Processor
Information hiding bypassed
@samnewman
CONTENT COUPLING
Order ID Status
123 PLACED
456 SHIPPED
WarehouseOrder Processor
Information hiding bypassed
Unclear what can safely be
changed in the Order service
@samnewman
CONTENT COUPLING
Order ID Status
123 PLACED
456 SHIPPED
WarehouseOrder Processor
Information hiding bypassed
Unclear what can safely be
changed in the Order service
Aka Pathological Coupling
@samnewman
TYPES OF COUPLING
Domain Common ContentTramp
@samnewman
TYPES OF COUPLING
Domain Common Content
Increasing coupling
Tramp
@samnewman
IN SUMMARY
@samnewman
IN SUMMARY
Information hiding is super important
@samnewman
IN SUMMARY
Information hiding is super important
Some coupling is worse than others
@samnewman
IN SUMMARY
Information hiding is super important
Some coupling is worse than others
Information hiding, low coupling, strong
cohesion = Independent Deployability
@samnewman
THANKS!
https://samnewman.io/

More Related Content

What's hot

Object Oriented Programming with Java
Object Oriented Programming with JavaObject Oriented Programming with Java
Object Oriented Programming with Java
backdoor
 
Chapter 1 introduction
Chapter 1 introductionChapter 1 introduction
Chapter 1 introduction
Piyush Gogia
 
State Machine Diagram
State Machine DiagramState Machine Diagram
State Machine Diagram
Niloy Rocker
 
Prototype model
Prototype modelPrototype model
Prototype model
sadhana8
 

What's hot (20)

Cohesion and coupling
Cohesion and couplingCohesion and coupling
Cohesion and coupling
 
Object Oriented Programming with Java
Object Oriented Programming with JavaObject Oriented Programming with Java
Object Oriented Programming with Java
 
Software Designing - Software Engineering
Software Designing - Software EngineeringSoftware Designing - Software Engineering
Software Designing - Software Engineering
 
Cohesion and coupling in software design
Cohesion and coupling in software designCohesion and coupling in software design
Cohesion and coupling in software design
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
 
Spiral Model
Spiral ModelSpiral Model
Spiral Model
 
Software Engineering : OOAD using UML
Software Engineering : OOAD using UMLSoftware Engineering : OOAD using UML
Software Engineering : OOAD using UML
 
White box ppt
White box pptWhite box ppt
White box ppt
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Chapter 1 introduction
Chapter 1 introductionChapter 1 introduction
Chapter 1 introduction
 
State Machine Diagram
State Machine DiagramState Machine Diagram
State Machine Diagram
 
UML
UMLUML
UML
 
Clean code
Clean codeClean code
Clean code
 
Agile Methodology - Software Engineering
Agile Methodology - Software EngineeringAgile Methodology - Software Engineering
Agile Methodology - Software Engineering
 
Prototyping model
Prototyping modelPrototyping model
Prototyping model
 
Dbms3
Dbms3Dbms3
Dbms3
 
Prototype model
Prototype modelPrototype model
Prototype model
 
Iterative model
Iterative modelIterative model
Iterative model
 
Grasp
GraspGrasp
Grasp
 
Spiral model
Spiral modelSpiral model
Spiral model
 

Similar to Hiding The Lead: Coupling, cohesion and microservices

How to Design a Kafka Architecture Resilient to Cloud Outages With Julie Wied...
How to Design a Kafka Architecture Resilient to Cloud Outages With Julie Wied...How to Design a Kafka Architecture Resilient to Cloud Outages With Julie Wied...
How to Design a Kafka Architecture Resilient to Cloud Outages With Julie Wied...
HostedbyConfluent
 
Business Model Temp
Business Model TempBusiness Model Temp
Business Model Temp
cgiardini
 

Similar to Hiding The Lead: Coupling, cohesion and microservices (20)

INTERFACE by apidays - Microservices, APIs, and the Cost Of Change by Sam Newman
INTERFACE by apidays - Microservices, APIs, and the Cost Of Change by Sam NewmanINTERFACE by apidays - Microservices, APIs, and the Cost Of Change by Sam Newman
INTERFACE by apidays - Microservices, APIs, and the Cost Of Change by Sam Newman
 
Testing & deploying Microservices GeeCon 2014
Testing & deploying Microservices   GeeCon 2014Testing & deploying Microservices   GeeCon 2014
Testing & deploying Microservices GeeCon 2014
 
It's a trap!
It's a trap!It's a trap!
It's a trap!
 
Keynote: Sam Newman, Building Microservices | The Tyranny Of Data | Kafka Sum...
Keynote: Sam Newman, Building Microservices | The Tyranny Of Data | Kafka Sum...Keynote: Sam Newman, Building Microservices | The Tyranny Of Data | Kafka Sum...
Keynote: Sam Newman, Building Microservices | The Tyranny Of Data | Kafka Sum...
 
Rip It Up - The Microservice Organisation
Rip It Up  - The Microservice OrganisationRip It Up  - The Microservice Organisation
Rip It Up - The Microservice Organisation
 
Deploying & operating microservices
Deploying & operating microservicesDeploying & operating microservices
Deploying & operating microservices
 
Principles of Microservices - NDC 2014
Principles of Microservices  - NDC 2014Principles of Microservices  - NDC 2014
Principles of Microservices - NDC 2014
 
Confusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min VersionConfusion In The Land Of The Serverless - 90min Version
Confusion In The Land Of The Serverless - 90min Version
 
Principles of microservices XP Days Ukraine
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days Ukraine
 
Practical microservices - javazone 2014
Practical microservices -  javazone 2014Practical microservices -  javazone 2014
Practical microservices - javazone 2014
 
Ryan Smith's talk from the AWS Chicago user group May 22 - Security
Ryan Smith's talk from the AWS Chicago user group May 22 - Security Ryan Smith's talk from the AWS Chicago user group May 22 - Security
Ryan Smith's talk from the AWS Chicago user group May 22 - Security
 
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected JourneyQCon Sao Paulo Keynote - Microservices, an Unexpected Journey
QCon Sao Paulo Keynote - Microservices, an Unexpected Journey
 
Practical microservices - NDC 2014
Practical microservices  - NDC 2014Practical microservices  - NDC 2014
Practical microservices - NDC 2014
 
How to Design a Kafka Architecture Resilient to Cloud Outages With Julie Wied...
How to Design a Kafka Architecture Resilient to Cloud Outages With Julie Wied...How to Design a Kafka Architecture Resilient to Cloud Outages With Julie Wied...
How to Design a Kafka Architecture Resilient to Cloud Outages With Julie Wied...
 
Principles of microservices ndc oslo
Principles of microservices   ndc osloPrinciples of microservices   ndc oslo
Principles of microservices ndc oslo
 
Copper Mobile
Copper MobileCopper Mobile
Copper Mobile
 
From fire fighting to fire insurance
From fire fighting to fire insuranceFrom fire fighting to fire insurance
From fire fighting to fire insurance
 
Describe and Improve your Business Model
Describe and Improve your Business ModelDescribe and Improve your Business Model
Describe and Improve your Business Model
 
Business Model Temp
Business Model TempBusiness Model Temp
Business Model Temp
 
AI Services and Serverless Workshop
AI Services and Serverless WorkshopAI Services and Serverless Workshop
AI Services and Serverless Workshop
 

More from Sam Newman

Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
Sam Newman
 
Testing & deploying microservices - XP Days Ukraine 2014
Testing & deploying microservices  - XP Days Ukraine 2014Testing & deploying microservices  - XP Days Ukraine 2014
Testing & deploying microservices - XP Days Ukraine 2014
Sam Newman
 
From macro to micro goto
From macro to micro   gotoFrom macro to micro   goto
From macro to micro goto
Sam Newman
 
Designing for rapid release goto 2012
Designing for rapid release   goto 2012Designing for rapid release   goto 2012
Designing for rapid release goto 2012
Sam Newman
 

More from Sam Newman (14)

What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?What Is This Cloud Native Thing Anyway?
What Is This Cloud Native Thing Anyway?
 
AppSec and Microservices
AppSec and MicroservicesAppSec and Microservices
AppSec and Microservices
 
Feature Branches And Toggles In A Post-GitHub World
Feature Branches And Toggles In A Post-GitHub WorldFeature Branches And Toggles In A Post-GitHub World
Feature Branches And Toggles In A Post-GitHub World
 
Confusion In The Land Of The Serverless
Confusion In The Land Of The ServerlessConfusion In The Land Of The Serverless
Confusion In The Land Of The Serverless
 
AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016AppSec & Microservices - Velocity 2016
AppSec & Microservices - Velocity 2016
 
AppSec And Microservices
AppSec And MicroservicesAppSec And Microservices
AppSec And Microservices
 
Deploying and Scaling Microservices
Deploying and Scaling MicroservicesDeploying and Scaling Microservices
Deploying and Scaling Microservices
 
BETA - Securing microservices
BETA - Securing microservicesBETA - Securing microservices
BETA - Securing microservices
 
Principles of microservices velocity
Principles of microservices   velocityPrinciples of microservices   velocity
Principles of microservices velocity
 
Testing & deploying microservices - XP Days Ukraine 2014
Testing & deploying microservices  - XP Days Ukraine 2014Testing & deploying microservices  - XP Days Ukraine 2014
Testing & deploying microservices - XP Days Ukraine 2014
 
Practical microservices - YOW 2013
Practical microservices  - YOW 2013Practical microservices  - YOW 2013
Practical microservices - YOW 2013
 
From macro to micro goto
From macro to micro   gotoFrom macro to micro   goto
From macro to micro goto
 
Designing for rapid release goto 2012
Designing for rapid release   goto 2012Designing for rapid release   goto 2012
Designing for rapid release goto 2012
 
Surfing the event stream
Surfing the event streamSurfing the event stream
Surfing the event stream
 

Recently uploaded

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Hiding The Lead: Coupling, cohesion and microservices