SlideShare a Scribd company logo
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 1/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
Enjoy Responsibly:
Minimizing Coupling for API
Consumption
API Days [https://www.apidays.co/] Finland,
Helsinki [https://www.apidays.fi/]
Erik Wilde
Good API
June 5, 2019
[http://creativecommons.org/licenses/by/3.0/]
This work is licensed under a CC
Attribution 3.0 Unported License [http://creativecommons.org/licenses/by/3.0/]
Follow @dret 2,806 followers
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 2/23
Contents
2
4
5
6
7
9
10
11
12
13
14
15
17
18
20
21
22
24
25
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
Contents
Summary
1 Introduction
@dret on Twitter/GitHub
About Me
Good API [http://www.goodapi.co/]
Continuous API Management (2018)
2 The Value of Loose Coupling
Business and Tech Agility
Digital Transformation
Digital Transformation: The Global Challenge
Digital Transformation Chasm [https://devops.com/7-big-digital-transformation-trends/]
APIs are (not just) Plumbing
API Strategy and Program
Loose Coupling is Essential
3 Business Considerations
API Platform Value
Determining API Scope
4 Technology Considerations
Robust Extensibility [http://dret.typepad.com/dretblog/2016/04/robust-extensibility.html]
CAM Consumption Compass [http://dret.net/lectures/www-2019/]
Hyrum's Law
5 Conclusions
Loose Coupling Matters
Thanks! Q&A
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 3/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
(2)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
Summary
One of the main goals of digital transformation is to improve the agility of a business. As a result of this,
once digital transformation is underway and API production and consumption within an organization
increase, it is important to keep an eye on the ultimate goal: APIs not only as a way of interconnecting
capabilities for new value chains, but also as a way of how old or under-performing products can be
improved, without disrupting the entire fabric of interconnected components. The main goal of API
production and consumption should be to decrease coupling: API producers and consumers are as loosely
coupled as possible, so that changes on either side can be done without affecting the other side. This
requires design patters and implementation practices to be followed by both sides, and this presentation
goes into the details of how to minimize coupling for both producers and consumers. With loose coupling
practices in place, digital transformation becomes more valuable, because the fabric of digital products in
an organizations remains as flexible and reconfigurable as possible.
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 4/23
Introduction
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
(4)@dret on Twitter/GitHub
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 5/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
Introduction
(5)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
About Me
Ph.D. in Communications Systems [http://dret.net/netdret/publications#wil97b] from ETH Zürich
[http://www.ethz.ch/]
Working on Web Architecture after writing the first Web Technology book
[http://dret.net/netdret/publications#wil98]
UC Berkeley (2006-2011), working on Service Models for Open Government
[http://dret.net/netdret/publications#wil09g]
EMC (2011-2014), working on transforming software products into service platforms
Siemens (2014-2015), working on using IoT to build WoT ("APIs for Things")
Part of CA [http://www.ca.com/]'s API Academy [http://www.apiacademy.co/] 2016-2019 focusing on API
Design and Management
Joined Good API [https://www.goodapi.co/] in 2019 focusing on API Strategy and Guidance for Digital
Transformation
Active in the usual places such as Twitter [http://twitter.com/dret], GitHub [http://github.com/dret], and
LinkedIn [http://www.linkedin.com/in/netdret]
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 6/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
Introduction
(6)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
Good API [http://www.goodapi.co/]
International team based in Prague and Zurich
Adam Kliment:
[http://twitter.com/ntmlk]
Zdenek "Z" Nemec:
[http://twitter.com/zdne]
Erik Wilde:
[http://twitter.com/dret]
Working on Digital Transformation and API Strategy and
Programs
Planning and coaching digital transformation
initiatives
Formulating API strategies for building a solid
foundation
Executing API programs to turn API strategies into API landscapes
Follow @ntmlk 455 followers
Follow @zdne 1,188 followers
Follow @dret 2,806 followers
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 8/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
Introduction
(7)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
Continuous API Management (2018)
"Continuous API Management: Making the Right Decisions in an Evolving Landscape"
[https://www.apiacademy.co/resources/books/continuous-api-management]
O'Reilly book page [http://shop.oreilly.com/product/0636920201755.do]
Amazon book page [https://www.amazon.com/Continuous-Api-Management-Decisions-Landscape/dp/1492043559]
Authored by 2018 API Academy [http://www.apiacademy.co/] members
Mehdi Medjaoui: [http://twitter.com/medjawii]
Erik Wilde: [http://twitter.com/dret]
Ronnie Mitra: [http://twitter.com/mitraman]
Follow @medjawii 2,702 followers
Follow @dret 2,806 followers
Follow @mitraman 2,219 followers
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 10/23
The Value of Loose Coupling
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
(9)Business and Tech Agility
Goal: Alignment of Business and IT
Business thinks in terms of fully digitalized value chains
Public/partner interconnection requires no IT changes
IT can execute quickly when new components are designed/developed
Business leverages IT for better insights and feedback
IT agility is necessary (but not sufficient) for business agility
Components are designed and developed based on customer needs
Instead of top-down planning the focus is on decentralized coordination
Changing components easily is part of the architectural goals
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 11/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
The Value of Loose Coupling
(10)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
Digital Transformation
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 12/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
The Value of Loose Coupling
(11)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
Digital Transformation: The Global Challenge
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 13/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
The Value of Loose Coupling
(12)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
Digital Transformation Chasm [https://devops.com/7-big-
digital-transformation-trends/]
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 14/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
The Value of Loose Coupling
(13)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
APIs are (not just) Plumbing
Organizations sometimes struggle aligning business and IT
Business and IT may historically be far from each other
There may be a tradition of seeing IT as "just implementation"
APIs are necessary (but not sufficient) for digital transformation
Good plumbing does not mean that you are building valuable
things with it
Bad plumbing means that whatever you are building will have
problems
APIs are the delivery of the value created by capabilities
Business needs to understand delivery concepts and impacts
IT needs to make sure capability value is delivered robustly
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 15/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
The Value of Loose Coupling
(14)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
API Strategy and Program
API strategy is about saying what you want from APIs
What (additional) value can you create by using APIs?
What API platform will be available for external/internal use?
What enablement will teams get to participate?
API program is about saying how your strategy is executed
How to make sure that APIs are focused around delivering value
How to built and cultivate the API landscape powering the platform
How to observe and support teams to improve their effectiveness
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 16/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
The Value of Loose Coupling
(15)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
Loose Coupling is Essential
APIs without loose coupling are not (really) APIs
APIs are not designed specifically for one consumer
Reused APIs should have a model how to decouple evolution
Loose coupling is fuzzy but still an important quality
Decoupling the API from other domains
Decoupling the API from consumer specifics
Decoupling the API from the implementation
Decoupling the API from consumer technology
Decoupling the API from a specific release
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 17/23
Business Considerations
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
(17)API Platform Value
The value of API platforms is a function of API design quality
Platforms are more than externally-facing environments
For example, automotive platforms have revolutionized car design and manufacturing
Platforms ideally reach deep into an organization's business model
Think of API platforms as your new way of building everything
All APIs should be designed to allow independent evolution of peers
APIs are easier to evolve when they clearly cover one domain
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 18/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
Business Considerations
(18)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
Determining API Scope
Building blocks work best when they have basic and reusable shapes
Understanding users is the best way to design building blocks
Having integrations can be a great starting point
User stories can be great ways of understanding needs
API stories remove UI focus from existing user stories
Part of the design exercise is to design for future users
Come up with scenarios that you see as future markets
Aggregate needs across scenarios and stories into APIs
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 19/23
Technology Considerations
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
(20)Robust Extensibility
[http://dret.typepad.com/dretblog/2016/04/robust-extensibility.html]
Meaningful Core Semantics
The core of the API allows clients to have meaningful interactions
The core of the API is robust over time
Well-Defined Extension Points
APIs should be clear about where extensions are allowed
API tests can make sure that the extension points are properly implemented
Well-Defined Processing Model
Extensions are well-defined and their handling is well-defined as well
mustIgnore is a popular and good choice for extension processing
How to learn about extensions is a different matter
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 20/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
Technology Considerations
(21)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
CAM Consumption Compass
[http://dret.net/lectures/www-2019/]
Risk: Is it worth taking the risk of a dependency?
Replacement: Are there plans for temporary/permanent replacements?
Redundancy: Is there a failover API to use during outages?
Resilience: Is the client handling API problems responsibly?
Rightsizing: Is the scope well-defined and at the right size?
Representation: Is the client isolating the specific API model?
Reporting: Is the dependency monitored for analytics and errors?
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 21/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
Technology Considerations
(22)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
Hyrum's Law
"With a sufficient number of users of an API, it does not matter what you promise in the
contract: all observable behaviors of your system will be depended on by somebody."
[http://www.hyrumslaw.com/] (Hyrum Wright)
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 22/23
Conclusions
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
(24)Loose Coupling Matters
Digital Transformation is all about agile digitalized organizations
Agility needs customer focus, small teams, and ecosystem thinking
Business pattern: Design products as value chain components
Technology pattern: Allow independent evolution of value chain components
6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API
localhost/github/lectures/api-days-finland-2019/#(1) 23/23
June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
Conclusions
(25)
Erik Wilde : Enjoy Responsibly:
Minimizing Coupling for API Consumption
Thanks! Q&A
Slides online: dret.net/lectures/api-days-
finland-2019 [http://dret.net/lectures/api-days-finland-2019]
More information about myself:
Twitter:
[http://twitter.com/dret]
LinkedIn: linkedin.com/in/netdret
[http://www.linkedin.com/in/netdret]
Web page: dret.net/netdret/
[http://dret.net/netdret/]
Follow @dret 2,806 followers

More Related Content

APIdays Helsinki 2019 - How to Minimize Coupling in API Production and Consumption with Erik Wilde, Good API

  • 1. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 1/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] Enjoy Responsibly: Minimizing Coupling for API Consumption API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] Erik Wilde Good API June 5, 2019 [http://creativecommons.org/licenses/by/3.0/] This work is licensed under a CC Attribution 3.0 Unported License [http://creativecommons.org/licenses/by/3.0/] Follow @dret 2,806 followers
  • 2. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 2/23 Contents 2 4 5 6 7 9 10 11 12 13 14 15 17 18 20 21 22 24 25 Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption Contents Summary 1 Introduction @dret on Twitter/GitHub About Me Good API [http://www.goodapi.co/] Continuous API Management (2018) 2 The Value of Loose Coupling Business and Tech Agility Digital Transformation Digital Transformation: The Global Challenge Digital Transformation Chasm [https://devops.com/7-big-digital-transformation-trends/] APIs are (not just) Plumbing API Strategy and Program Loose Coupling is Essential 3 Business Considerations API Platform Value Determining API Scope 4 Technology Considerations Robust Extensibility [http://dret.typepad.com/dretblog/2016/04/robust-extensibility.html] CAM Consumption Compass [http://dret.net/lectures/www-2019/] Hyrum's Law 5 Conclusions Loose Coupling Matters Thanks! Q&A June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/]
  • 3. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 3/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] (2) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption Summary One of the main goals of digital transformation is to improve the agility of a business. As a result of this, once digital transformation is underway and API production and consumption within an organization increase, it is important to keep an eye on the ultimate goal: APIs not only as a way of interconnecting capabilities for new value chains, but also as a way of how old or under-performing products can be improved, without disrupting the entire fabric of interconnected components. The main goal of API production and consumption should be to decrease coupling: API producers and consumers are as loosely coupled as possible, so that changes on either side can be done without affecting the other side. This requires design patters and implementation practices to be followed by both sides, and this presentation goes into the details of how to minimize coupling for both producers and consumers. With loose coupling practices in place, digital transformation becomes more valuable, because the fabric of digital products in an organizations remains as flexible and reconfigurable as possible.
  • 4. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 4/23 Introduction June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] (4)@dret on Twitter/GitHub
  • 5. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 5/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] Introduction (5) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption About Me Ph.D. in Communications Systems [http://dret.net/netdret/publications#wil97b] from ETH Zürich [http://www.ethz.ch/] Working on Web Architecture after writing the first Web Technology book [http://dret.net/netdret/publications#wil98] UC Berkeley (2006-2011), working on Service Models for Open Government [http://dret.net/netdret/publications#wil09g] EMC (2011-2014), working on transforming software products into service platforms Siemens (2014-2015), working on using IoT to build WoT ("APIs for Things") Part of CA [http://www.ca.com/]'s API Academy [http://www.apiacademy.co/] 2016-2019 focusing on API Design and Management Joined Good API [https://www.goodapi.co/] in 2019 focusing on API Strategy and Guidance for Digital Transformation Active in the usual places such as Twitter [http://twitter.com/dret], GitHub [http://github.com/dret], and LinkedIn [http://www.linkedin.com/in/netdret]
  • 6. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 6/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] Introduction (6) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption Good API [http://www.goodapi.co/] International team based in Prague and Zurich Adam Kliment: [http://twitter.com/ntmlk] Zdenek "Z" Nemec: [http://twitter.com/zdne] Erik Wilde: [http://twitter.com/dret] Working on Digital Transformation and API Strategy and Programs Planning and coaching digital transformation initiatives Formulating API strategies for building a solid foundation Executing API programs to turn API strategies into API landscapes Follow @ntmlk 455 followers Follow @zdne 1,188 followers Follow @dret 2,806 followers
  • 7. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 8/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] Introduction (7) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption Continuous API Management (2018) "Continuous API Management: Making the Right Decisions in an Evolving Landscape" [https://www.apiacademy.co/resources/books/continuous-api-management] O'Reilly book page [http://shop.oreilly.com/product/0636920201755.do] Amazon book page [https://www.amazon.com/Continuous-Api-Management-Decisions-Landscape/dp/1492043559] Authored by 2018 API Academy [http://www.apiacademy.co/] members Mehdi Medjaoui: [http://twitter.com/medjawii] Erik Wilde: [http://twitter.com/dret] Ronnie Mitra: [http://twitter.com/mitraman] Follow @medjawii 2,702 followers Follow @dret 2,806 followers Follow @mitraman 2,219 followers
  • 8. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 10/23 The Value of Loose Coupling June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] (9)Business and Tech Agility Goal: Alignment of Business and IT Business thinks in terms of fully digitalized value chains Public/partner interconnection requires no IT changes IT can execute quickly when new components are designed/developed Business leverages IT for better insights and feedback IT agility is necessary (but not sufficient) for business agility Components are designed and developed based on customer needs Instead of top-down planning the focus is on decentralized coordination Changing components easily is part of the architectural goals
  • 9. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 11/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] The Value of Loose Coupling (10) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption Digital Transformation
  • 10. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 12/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] The Value of Loose Coupling (11) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption Digital Transformation: The Global Challenge
  • 11. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 13/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] The Value of Loose Coupling (12) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption Digital Transformation Chasm [https://devops.com/7-big- digital-transformation-trends/]
  • 12. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 14/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] The Value of Loose Coupling (13) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption APIs are (not just) Plumbing Organizations sometimes struggle aligning business and IT Business and IT may historically be far from each other There may be a tradition of seeing IT as "just implementation" APIs are necessary (but not sufficient) for digital transformation Good plumbing does not mean that you are building valuable things with it Bad plumbing means that whatever you are building will have problems APIs are the delivery of the value created by capabilities Business needs to understand delivery concepts and impacts IT needs to make sure capability value is delivered robustly
  • 13. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 15/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] The Value of Loose Coupling (14) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption API Strategy and Program API strategy is about saying what you want from APIs What (additional) value can you create by using APIs? What API platform will be available for external/internal use? What enablement will teams get to participate? API program is about saying how your strategy is executed How to make sure that APIs are focused around delivering value How to built and cultivate the API landscape powering the platform How to observe and support teams to improve their effectiveness
  • 14. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 16/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] The Value of Loose Coupling (15) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption Loose Coupling is Essential APIs without loose coupling are not (really) APIs APIs are not designed specifically for one consumer Reused APIs should have a model how to decouple evolution Loose coupling is fuzzy but still an important quality Decoupling the API from other domains Decoupling the API from consumer specifics Decoupling the API from the implementation Decoupling the API from consumer technology Decoupling the API from a specific release
  • 15. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 17/23 Business Considerations June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] (17)API Platform Value The value of API platforms is a function of API design quality Platforms are more than externally-facing environments For example, automotive platforms have revolutionized car design and manufacturing Platforms ideally reach deep into an organization's business model Think of API platforms as your new way of building everything All APIs should be designed to allow independent evolution of peers APIs are easier to evolve when they clearly cover one domain
  • 16. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 18/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] Business Considerations (18) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption Determining API Scope Building blocks work best when they have basic and reusable shapes Understanding users is the best way to design building blocks Having integrations can be a great starting point User stories can be great ways of understanding needs API stories remove UI focus from existing user stories Part of the design exercise is to design for future users Come up with scenarios that you see as future markets Aggregate needs across scenarios and stories into APIs
  • 17. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 19/23 Technology Considerations June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] (20)Robust Extensibility [http://dret.typepad.com/dretblog/2016/04/robust-extensibility.html] Meaningful Core Semantics The core of the API allows clients to have meaningful interactions The core of the API is robust over time Well-Defined Extension Points APIs should be clear about where extensions are allowed API tests can make sure that the extension points are properly implemented Well-Defined Processing Model Extensions are well-defined and their handling is well-defined as well mustIgnore is a popular and good choice for extension processing How to learn about extensions is a different matter
  • 18. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 20/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] Technology Considerations (21) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption CAM Consumption Compass [http://dret.net/lectures/www-2019/] Risk: Is it worth taking the risk of a dependency? Replacement: Are there plans for temporary/permanent replacements? Redundancy: Is there a failover API to use during outages? Resilience: Is the client handling API problems responsibly? Rightsizing: Is the scope well-defined and at the right size? Representation: Is the client isolating the specific API model? Reporting: Is the dependency monitored for analytics and errors?
  • 19. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 21/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] Technology Considerations (22) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption Hyrum's Law "With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by somebody." [http://www.hyrumslaw.com/] (Hyrum Wright)
  • 20. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 22/23 Conclusions June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] (24)Loose Coupling Matters Digital Transformation is all about agile digitalized organizations Agility needs customer focus, small teams, and ecosystem thinking Business pattern: Design products as value chain components Technology pattern: Allow independent evolution of value chain components
  • 21. 6/5/2019 Enjoy Responsibly:Minimizing Coupling for API Consumption ; Erik Wilde (@dret) ; Good API localhost/github/lectures/api-days-finland-2019/#(1) 23/23 June 5, 2019API Days [https://www.apidays.co/] Finland, Helsinki [https://www.apidays.fi/] Conclusions (25) Erik Wilde : Enjoy Responsibly: Minimizing Coupling for API Consumption Thanks! Q&A Slides online: dret.net/lectures/api-days- finland-2019 [http://dret.net/lectures/api-days-finland-2019] More information about myself: Twitter: [http://twitter.com/dret] LinkedIn: linkedin.com/in/netdret [http://www.linkedin.com/in/netdret] Web page: dret.net/netdret/ [http://dret.net/netdret/] Follow @dret 2,806 followers