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

Microservice Patterns - Implemented by Eclipse MicroProfile

ivargrimstad
November 14, 2019

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 and demo of all technologies implementing the patterns.

ivargrimstad

November 14, 2019
Tweet

More Decks by ivargrimstad

Other Decks in Programming

Transcript

  1. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Microservice Patterns Implemented by Eclipse MicroProfile
  2. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Eclipse MicroProfile
  3. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  4. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile M icroProfile 3.1 October 9, 2019
  5. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile Open Liberty
  6. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile java -jar dukes.jar
  7. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  8. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Getting Started
  9. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  10. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Microservice Patterns
  11. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) 1. Health Check API 2. Application Metrics 3. Externalised Configuration 4. Circuit Breaker 5. Access Token 6. Distributed Tracing 7. API Description
  12. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Health Check API
  13. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) How to detect that a running service instance is unable to handle requests?
  14. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) MicroProfile Health API
  15. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  16. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) DEMO
  17. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Application Metrics
  18. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) How to understand the behavior of an application and troubleshoot problems?
  19. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) MicroProfile Metrics
  20. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  21. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) DEMO
  22. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Externalised Configuration
  23. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) How to enable a service to run in multiple environments without modification?
  24. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Configuration for MicroProfile
  25. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile System Properties System.getProperties() Environment Variables System.getenv() Application Configuration META-INF/microprofile-config.properties
  26. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  27. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) DEMO
  28. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) location http://localhost:8080/location Response Morocco
  29. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Circuit Breaker
  30. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) How to prevent a network or service failure from cascading to other services?
  31. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  32. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  33. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) DEMO
  34. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) location http://localhost:8080/location Response conference http://localhost:8282/conference Response Devoxx Morocco Morocco Fallback greeting http://localhost:8181/hello Hello Devoxx Morocco Response Ope Open Liberty
  35. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Access Token
  36. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) How to communicate the identity of the requestor to the services that handle the request?
  37. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Basic Authentication
  38. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile 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!”}
  39. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) OAuth 2.0
  40. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile 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!”}
  41. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) JSON Web Token (JWT)
  42. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile 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!”}
  43. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile 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!”}
  44. @ivar_grimstad #MicroProfile ✦Header ✦ JSON, Base64 URL Encoded ✦ Algorithm,

    Type ✦Payload ✦ JSON, Base64 URL Encoded ✦ Standard + Custom entries ✦Signature ✦ Binary, Base64 URL Encoded ✦ The actual signature
  45. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile 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. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile { “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
  47. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  48. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) DEMO
  49. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) greeting location conference Fallback JWT http://localhost:8181/hello http://localhost:8282/conference http://localhost:8080/location Hello Devoxx Morocco Response Response Response Ope Open Liberty Devoxx Morocco Morocco
  50. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Distributed Tracing
  51. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) How to understand the behavior of an application and troubleshoot problems?
  52. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  53. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) DEMO
  54. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) greeting location conference Fallback JWT http://localhost:8181/hello http://localhost:8282/conference http://localhost:8080/location Hello Devoxx Morocco Response Response Response Ope Open Liberty Devoxx Morocco Morocco
  55. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) API Description
  56. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Which knowledge should be shared between an API provider and its clients? How should this knowledge be documented?
  57. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  58. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) DEMO
  59. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) Summary
  60. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile
  61. @ivar_grimstad #MicroProfile COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE

    AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) 1. Health Check API 2. Application Metrics 3. Externalised Configuration 4. Circuit Breaker 5. Access Token 6. Distributed Tracing 7. API Description
  62. COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER

    THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0) @ivar_grimstad #MicroProfile Microservice Patterns http://microservices.io
 https://microservice-api-patterns.org/ Samples https://github.com/ivargrimstad Microprofile http://microprofile.io Jakarta EE https://jakarta.ee