Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Microservice Patterns - Implemented by Eclipse MicroProfile

Microservice Patterns - Implemented by Eclipse MicroProfile

Eclipse MicroProfile provides specifications for the most commonly used microservice patterns. This session presents a group of patterns that will be explained and demoed live in a down-to-earth and easily understandable way.

Patterns covered include Service per Container, Externalized Configuration, Health Check API, Application Metrics, Circuit Breaker, Access Token, Distributed Tracing.

There will be live coding!

ivargrimstad

February 27, 2020
Tweet

More Decks by ivargrimstad

Other Decks in Programming

Transcript

  1. COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Microservice Patterns Implemented by Eclipse MicroProfile Ivar Grimstad
 Jakarta EE Developer Advocate, Eclipse Foundation
  2. COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  3. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Eclipse MicroProfile
  4. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  5. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) M icroProfile 3.3 Februar 18, 2020
  6. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Open Liberty
  7. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) java -jar dukes.jar
  8. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  9. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Getting Started
  10. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  11. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  12. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Microservice Patterns
  13. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) 1. Health Check API 2. Application Metrics 3. Externalized Configuration 4. Circuit Breaker 5. Access Token 6. Distributed Tracing 7. API Description
  14. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Health Check API
  15. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) How to detect that a running service instance is unable to handle requests?
  16. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) my-sevice GET /health/live Hey, are you alive? Kill
  17. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) my-sevice GET /health/live Hey, are you alive? Yes 200
  18. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) my-sevice GET /health/ready Ready for some traffic?
  19. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) my-sevice GET /health/ready How about now? Give it to me! 200
  20. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  21. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) DEMO
  22. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Application Metrics
  23. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) How to understand the behavior of an application and troubleshoot problems?
  24. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  25. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) DEMO
  26. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Externalized Configuration
  27. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) How to enable a service to run in multiple environments without modification?
  28. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  29. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) System Properties System.getProperties() Environment Variables System.getenv() Application Configuration META-INF/microprofile-config.properties
  30. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) DEMO
  31. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Circuit Breaker
  32. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) How to prevent a network or service failure from cascading to other services?
  33. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  34. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  35. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) DEMO
  36. Fallback greeting http://localhost:8181/data/hello You have a Microservice Talk in Montreal

    Thursday at 11:00 Response Ope Open Liberty conference http://localhost:8282/data/conference Response Microservice Talk in Montreal day http://localhost:8080/data/day Thursday Response time http://localhost:8383/data/time 11:00 Response Fallback Fallback location http://localhost:8484/data/location Response in Montreal
  37. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Access Token
  38. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) How to communicate the identity of the requestor to the services that handle the request?
  39. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Basic Authentication
  40. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) POST /hello HTTP/1.1 Host: localhost:8080 Authorization: Basic c25vb3850nBhc3M= User-Agent: HTTPie/0.9.9 Accept: */* Content-Type: application/json Content-Length: 26 {“message”:“Hello, Duke!”}
  41. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) OAuth 2.0
  42. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) POST /hello HTTP/1.1 Host: localhost:8080 Authorization: Bearer 2YotnF2FEjrlzCsidMWpAA User-Agent: HTTPie/0.9.9 Accept: */* Content-Type: application/json Content-Length: 26 {“message”:“Hello, Duke!”} POST /hello HTTP/1.1 Host: localhost:8080 Authorization: Basic c25vb3850nBhc3M= User-Agent: HTTPie/0.9.9 Accept: */* Content-Type: application/json Content-Length: 26 {“message”:“Hello, Duke!”} POST /hello HTTP/1.1 Host: localhost:8080 Authorization: Bearer 2YotnF2FEjrlzCsidMWpAA User-Agent: HTTPie/0.9.9 Accept: */* Content-Type: application/json Content-Length: 26 {“message”:“Hello, Duke!”}
  43. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) JSON Web Token (JWT)
  44. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) POST /hello HTTP/1.1 Host: localhost:8080 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiQ mVhcmVyIiwiYXVkIjoic2ltcGxlYXBwIiwic3ViIjoiYm9iIiwidXBuIjo iYm9iIiwiY3VzdG9tQ2xhaW0iOiJjdXN0b21WYWx1ZSIsImdyb3VwcyI6W yJhZG1pbiIsInVzZXIiXSwiaXNzIjoiaHR0cDovL29wZW5saWJlcnR5Lml vIiwiZXhwIjoxNTI1MzM5MjU5LCJpYXQiOjE1MjUyNTI4NTl9.nDDpCR2w MWsENaDGORQblErOCJ6ii1R-N6iSzVsAz2RoUlvM2PrST2qT6kje-Nz9vc ptbSpOSlF1OuJydvP8Tg3puJKI5vGyL4RMowgJHwdvv7hMZvrK1loNrPfb yv727L9UwJSZMdzL_sibiXDuj-bIBIr6yGjVF86aQnh-PWBV8HHM1iW8l1 _y351lp2CAPkfjKwLU91iIT1jO1QCwItF8Dv-zAzmhd_rOIF58eB809_5r m0MMGIuAXdgUiU2bdEJQCkTWJKNNaSu5oddZzlKaCX4hIgBdrVV6447DM0 i31YRhLpYHfbzh_NlRrRPjGPNgzOIN1RInwPC8jdg_g User-Agent: HTTPie/0.9.9 Accept: */* Content-Type: application/json Content-Length: 26 {“message”:“Hello, Duke!”}
  45. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) POST /hello HTTP/1.1 Host: localhost:8080 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiQ mVhcmVyIiwiYXVkIjoic2ltcGxlYXBwIiwic3ViIjoiYm9iIiwidXBuIjo iYm9iIiwiY3VzdG9tQ2xhaW0iOiJjdXN0b21WYWx1ZSIsImdyb3VwcyI6W yJhZG1pbiIsInVzZXIiXSwiaXNzIjoiaHR0cDovL29wZW5saWJlcnR5Lml vIiwiZXhwIjoxNTI1MzM5MjU5LCJpYXQiOjE1MjUyNTI4NTl9.nDDpCR2w MWsENaDGORQblErOCJ6ii1R-N6iSzVsAz2RoUlvM2PrST2qT6kje-Nz9vc ptbSpOSlF1OuJydvP8Tg3puJKI5vGyL4RMowgJHwdvv7hMZvrK1loNrPfb yv727L9UwJSZMdzL_sibiXDuj-bIBIr6yGjVF86aQnh-PWBV8HHM1iW8l1 _y351lp2CAPkfjKwLU91iIT1jO1QCwItF8Dv-zAzmhd_rOIF58eB809_5r m0MMGIuAXdgUiU2bdEJQCkTWJKNNaSu5oddZzlKaCX4hIgBdrVV6447DM0 i31YRhLpYHfbzh_NlRrRPjGPNgzOIN1RInwPC8jdg_g User-Agent: HTTPie/0.9.9 Accept: */* Content-Type: application/json Content-Length: 26 {“message”:“Hello, Duke!”}
  46. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) ✦Header ✦ JSON, Base64 URL Encoded ✦ Algorithm, Type ✦Payload ✦ JSON, Base64 URL Encoded ✦ Standard + Custom entries ✦Signature ✦ Binary, Base64 URL Encoded ✦ The actual signature
  47. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) POST /hello HTTP/1.1 Host: localhost:8080 Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiQ mVhcmVyIiwiYXVkIjoic2ltcGxlYXBwIiwic3ViIjoiYm9iIiwidXBuIjo iYm9iIiwiY3VzdG9tQ2xhaW0iOiJjdXN0b21WYWx1ZSIsImdyb3VwcyI6W yJhZG1pbiIsInVzZXIiXSwiaXNzIjoiaHR0cDovL29wZW5saWJlcnR5Lml vIiwiZXhwIjoxNTI1MzM5MjU5LCJpYXQiOjE1MjUyNTI4NTl9.nDDpCR2w MWsENaDGORQblErOCJ6ii1R-N6iSzVsAz2RoUlvM2PrST2qT6kje-Nz9vc ptbSpOSlF1OuJydvP8Tg3puJKI5vGyL4RMowgJHwdvv7hMZvrK1loNrPfb yv727L9UwJSZMdzL_sibiXDuj-bIBIr6yGjVF86aQnh-PWBV8HHM1iW8l1 _y351lp2CAPkfjKwLU91iIT1jO1QCwItF8Dv-zAzmhd_rOIF58eB809_5r m0MMGIuAXdgUiU2bdEJQCkTWJKNNaSu5oddZzlKaCX4hIgBdrVV6447DM0 i31YRhLpYHfbzh_NlRrRPjGPNgzOIN1RInwPC8jdg_g User-Agent: HTTPie/0.9.9 Accept: */* Content-Type: application/json Content-Length: 26 {“message”:“Hello, Duke!”}
  48. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) { “alg”: “RS256”, “typ”: “JWT} { “token-type: “access-token”, “username”: “duke”, “scopes”: [ “java”: “everywhere” ], “exp”: 1474280963, “iat”: 1474279163 “jti”: “66881b068b249ad9” } nDDpCR2wMWsENaDGORQblErOCJ6ii1R-N6iSzVsAz2RoUlvM2PrST2qT6kje-Nz 9vcptbSpOSlF1OuJydvP8Tg3puJKI5vGyL4RMowg-JHwdvv7hMZvrK1loNrPfby v727L9UwJSZMdzL_sibiXDuj-bIBIr6yGjVF86aQnh-PWBV8HHM1iW8l1_y351l p2CAPkfjKwLU91iIT1jO1QCwItF8Dv-zAzmhd_rOIF58eB809_5rm0MMGIuAXdg UiU2bdEJQCkTWJKNNaSu5oddZzlKaCX4hIgBdrVV6447DM0i31YRhLpYHfbzh_N lRrRPjGPNgzOIN1RInwPC8jdg_g
  49. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  50. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) DEMO
  51. Fallback greeting http://localhost:8181/data/hello You have a Microservice Talk in Montreal

    Thursday at 11:00 Response Ope Open Liberty conference http://localhost:8282/data/conference Response Microservice Talk in Montreal day http://localhost:8080/data/day Thursday Response time http://localhost:8383/data/time 11:00 Response Fallback Fallback Secured JWT location http://localhost:8484/data/location Response in Montreal
  52. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Distributed Tracing
  53. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) How to understand the behavior of an application and troubleshoot problems?
  54. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  55. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  56. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) DEMO
  57. greeting location conference Fallback http://localhost:8181/data/hello http://localhost:8282/data/conference http://localhost:8484/data/location You have a

    CodeMash Talk in Sandusky Thursday at 15:30 Response Response Response Ope Open Liberty CodeMash Talk in Sandusky day http://localhost:8080/data/day time http://localhost:8383/data/time 15:30 Thursday Response Response Fallback Fallback Secured JWT traced
 greeting
  58. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) API Description
  59. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Which knowledge should be shared between an API provider and its clients? How should this knowledge be documented?
  60. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0)
  61. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) DEMO
  62. COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Summary
  63. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) https://microservice-api-patterns.org/
  64. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) 1. Health Check API 2. Application Metrics 3. Externalized Configuration 4. Circuit Breaker 5. Access Token 6. Distributed Tracing 7. API Description
  65. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS

    WORK IS LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Microservice Patterns http://microservices.io
 https://microservice-api-patterns.org/ Samples https://github.com/ivargrimstad Microprofile http://microprofile.io Jakarta EE https://jakarta.ee
  66. COPYRIGHT (C) 2020, ECLIPSE FOUNDATION, INC. | THIS WORK IS

    LICENSED UNDER A CREATIVE COMMONS ATTRIBUTION 4.0 INTERNATIONAL LICENSE (CC BY 4.0) Duke's Choice Award Winner