SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0)

‹
!1
Building Interoperable
Microservices
with Eclipse MicroProfile
Ivar Grimstad
Principal Consultant, Cybercom Sweden
@ivar_grimstad
https://github.com/ivargrimstad
https://www.linkedin.com/in/ivargrimstad
@ivar_grimstad#JakartaEE #EE4J
@ivar_grimstad#microservices
Eclipse MicroProïŹle
@ivar_grimstad#microservices
@ivar_grimstad#microservices
M
icroProïŹle
3.0
June
11,2019
@ivar_grimstad#microservices
Open Liberty
@ivar_grimstad#MicroProïŹle #JavaEE #EE4J #JakartaEE
java -jar dukes.jar
@ivar_grimstad#microservices
@ivar_grimstad#microservices
Getting Started
@ivar_grimstad#MicroProïŹle #JavaEE #EE4J #JakartaEE
@ivar_grimstad#microservices
DEMO
@ivar_grimstad#microservices
Microservice Patterns
@ivar_grimstad#microservices
@ivar_grimstad#microservices
1. Externalised ConïŹguration
2. Health Check API
3. Application Metrics
4. Circuit Breaker
5. Access Token
6. Distributed Tracing
@ivar_grimstad#microservices
Externalised ConïŹguration
@ivar_grimstad#microservices
How to enable a service to run
in multiple environments
without modiïŹcation?
@ivar_grimstad#microservices
ConïŹguration for MicroProïŹle
@ivar_grimstad#microservices
System Properties
System.getProperties()
Environment Variables
System.getenv()
Application ConïŹguration
META-INF/microprofile-config.properties
@ivar_grimstad#MicroProïŹle #JavaEE #EE4J #JakartaEE
@ivar_grimstad#microservices
DEMO
@ivar_grimstad#microservices
Health Check API
@ivar_grimstad#microservices
How to detect that a running service
instance is unable to handle requests?
@ivar_grimstad#microservices
MicroProïŹle Health API
@ivar_grimstad#MicroProïŹle #JavaEE #EE4J #JakartaEE
@ivar_grimstad#microservices
DEMO
@ivar_grimstad#microservices
Application Metrics
@ivar_grimstad#microservices
How to understand the
behavior of an application and
troubleshoot problems?
@ivar_grimstad#microservices
MicroProïŹle Metrics
@ivar_grimstad#MicroProïŹle #JavaEE #EE4J #JakartaEE
@ivar_grimstad#microservices
DEMO
@ivar_grimstad#microservices
Circuit Breaker
@ivar_grimstad#microservices
How to prevent a network or
service failure from cascading
to other services?
@ivar_grimstad#microservices
@ivar_grimstad#MicroProïŹle #JavaEE #EE4J #JakartaEE
@ivar_grimstad#microservices
DEMO
@ivar_grimstad#microservices
Access Token
@ivar_grimstad#microservices
How to communicate the identity
of the requestor to the services
that handle the request?
@ivar_grimstad#microservices
Basic Authentication
@ivar_grimstad#microservices
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!”}
@ivar_grimstad#microservices
OAuth 2.0
@ivar_grimstad#microservices
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!”}
@ivar_grimstad#microservices
JSON Web Token
(JWT)
@ivar_grimstad#microservices
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!”}
@ivar_grimstad#microservices
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!”}
@ivar_grimstad#microservices
✩Header
✩ JSON, Base64 URL Encoded
✩ Algorithm, Type‹
✩Payload
✩ JSON, Base64 URL Encoded
✩ Standard + Custom entries‹
✩Signature
✩ Binary, Base64 URL Encoded
✩ The actual signature
@ivar_grimstad#microservices
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!”}
@ivar_grimstad#microservices
{ “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
@ivar_grimstad#MicroProïŹle #JavaEE #EE4J #JakartaEE
@ivar_grimstad#microservices
DEMO
@ivar_grimstad#microservices
Distributed Tracing
@ivar_grimstad#microservices
How to understand the
behavior of an application and
troubleshoot problems?
@ivar_grimstad#microservices
@ivar_grimstad#MicroProïŹle #JavaEE #EE4J #JakartaEE
@ivar_grimstad#microservices
End-to-End‹
DEMO
@ivar_grimstad#microservices
hello capitalizebirthday
Retry
+
Fallback
Fallback
http://localhost:8181/hello?name=duke
http://localhost:8282/birthday/duke?date=1995-05-23
http://localhost:8080/capitalize/duke
{
name: "Duke",
daysToBirthday: 304,
daysSinceBirthday: 62,
age: 24
}
Duke
Hello Duke! You are 24
years old. It has gone
62 days since your
birthday and it is 304
days left to your
next...
Response Response Response
Ope
COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0)

‹
!57
Summary
@ivar_grimstad#microservices
@ivar_grimstad#microservices
and
@ivar_grimstad#microservices
Microservice Architecture
http://microservices.io
Samples
https://github.com/ivargrimstad
MicroproïŹle
http://microproïŹle.io
Jakarta EE
https://jakarta.ee
COPYRIGHT (C) 2019, ECLIPSE FOUNDATION, INC. | MADE AVAILABLE UNDER THE ECLIPSE PUBLIC LICENSE 2.0 (EPL-2.0)

‹
!61
Thank you!

Weitere Àhnliche Inhalte

Ähnlich wie Building Interoperable Microservices With Eclipse MicroProfile| JakartaOne Livestream

V2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocketV2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocket
brent bucci
 
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
Viktor Gamov
 
Networking and Data Access with Eqela
Networking and Data Access with EqelaNetworking and Data Access with Eqela
Networking and Data Access with Eqela
jobandesther
 
Tutorial mikrotik step by step anung muhandanu
Tutorial mikrotik step by step  anung muhandanu Tutorial mikrotik step by step  anung muhandanu
Tutorial mikrotik step by step anung muhandanu
Alessandro De Suoodh
 

Ähnlich wie Building Interoperable Microservices With Eclipse MicroProfile| JakartaOne Livestream (20)

V2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocketV2 peter-lubbers-sf-jug-websocket
V2 peter-lubbers-sf-jug-websocket
 
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
M2M for Java Developers: MQTT with Eclipse Paho - Eclipsecon Europe 2013
 
Build Your First Java Jersey JAX-RS REST Web Service in less than 15 Minutes
Build Your First Java Jersey JAX-RS REST Web Service in less than 15 MinutesBuild Your First Java Jersey JAX-RS REST Web Service in less than 15 Minutes
Build Your First Java Jersey JAX-RS REST Web Service in less than 15 Minutes
 
apidays LIVE Paris - Sustainability APIs and making APIs sustainable by Phil ...
apidays LIVE Paris - Sustainability APIs and making APIs sustainable by Phil ...apidays LIVE Paris - Sustainability APIs and making APIs sustainable by Phil ...
apidays LIVE Paris - Sustainability APIs and making APIs sustainable by Phil ...
 
Introduction to the Container Networking and Security
Introduction to the Container Networking and SecurityIntroduction to the Container Networking and Security
Introduction to the Container Networking and Security
 
Swift hardware hacking @ try! Swift
Swift hardware hacking @ try! SwiftSwift hardware hacking @ try! Swift
Swift hardware hacking @ try! Swift
 
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
 
The Software Developers Guide to Prototyping Wearable Devices
The Software Developers Guide to Prototyping Wearable DevicesThe Software Developers Guide to Prototyping Wearable Devices
The Software Developers Guide to Prototyping Wearable Devices
 
Networking and Data Access with Eqela
Networking and Data Access with EqelaNetworking and Data Access with Eqela
Networking and Data Access with Eqela
 
Grizzly 20080925 V2
Grizzly 20080925 V2Grizzly 20080925 V2
Grizzly 20080925 V2
 
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023Service Mesh @Lara Camp Myanmar - 02 Sep,2023
Service Mesh @Lara Camp Myanmar - 02 Sep,2023
 
Apidaze WebRTC Workshop barcelona 21st april 2013
Apidaze WebRTC Workshop barcelona 21st april 2013Apidaze WebRTC Workshop barcelona 21st april 2013
Apidaze WebRTC Workshop barcelona 21st april 2013
 
JavaScript and Desktop Apps - Introduction to Electron
JavaScript and Desktop Apps - Introduction to ElectronJavaScript and Desktop Apps - Introduction to Electron
JavaScript and Desktop Apps - Introduction to Electron
 
Hta t07-did-you-read-the-news-http-request-hijacking
Hta t07-did-you-read-the-news-http-request-hijackingHta t07-did-you-read-the-news-http-request-hijacking
Hta t07-did-you-read-the-news-http-request-hijacking
 
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun GuptaGetting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
Getting Started with WebSocket and Server-Sent Events using Java by Arun Gupta
 
Timings API: Performance Assertion during the functional testing
 Timings API: Performance Assertion during the functional testing Timings API: Performance Assertion during the functional testing
Timings API: Performance Assertion during the functional testing
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021
 
Tutorial mikrotik step by step anung muhandanu
Tutorial mikrotik step by step  anung muhandanu Tutorial mikrotik step by step  anung muhandanu
Tutorial mikrotik step by step anung muhandanu
 
New and smart way to develop microservice for istio with micro profile
New and smart way to develop microservice for istio with micro profileNew and smart way to develop microservice for istio with micro profile
New and smart way to develop microservice for istio with micro profile
 
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta Getting started with Websocket and Server-sent Events using Java - Arun Gupta
Getting started with Websocket and Server-sent Events using Java - Arun Gupta
 

Mehr von Jakarta_EE

Mehr von Jakarta_EE (20)

Applied Domain-Driven Design Blueprints for Jakarta EE
Applied Domain-Driven Design Blueprints for Jakarta EEApplied Domain-Driven Design Blueprints for Jakarta EE
Applied Domain-Driven Design Blueprints for Jakarta EE
 
Contributors Guide to the Jakarta EE 10 Galaxy
Contributors Guide to the Jakarta EE 10 GalaxyContributors Guide to the Jakarta EE 10 Galaxy
Contributors Guide to the Jakarta EE 10 Galaxy
 
Shorten All URLs
Shorten All URLsShorten All URLs
Shorten All URLs
 
The Eclipse Transformer Project
The Eclipse Transformer Project The Eclipse Transformer Project
The Eclipse Transformer Project
 
Eclipse Transformer
Eclipse TransformerEclipse Transformer
Eclipse Transformer
 
Eclipse GlassFish 6.0.0-M1
Eclipse GlassFish 6.0.0-M1Eclipse GlassFish 6.0.0-M1
Eclipse GlassFish 6.0.0-M1
 
Jakarta EE 9 Platform Project
Jakarta EE 9 Platform ProjectJakarta EE 9 Platform Project
Jakarta EE 9 Platform Project
 
Jakarta EE 9 Milestone Release Party - Overview
Jakarta EE 9 Milestone Release Party - OverviewJakarta EE 9 Milestone Release Party - Overview
Jakarta EE 9 Milestone Release Party - Overview
 
Jakarta EE 9 Platform Report
Jakarta EE 9 Platform ReportJakarta EE 9 Platform Report
Jakarta EE 9 Platform Report
 
Cloud Native Java: Present and Future at Eclipse Foundation
Cloud Native Java: Present and Future at Eclipse FoundationCloud Native Java: Present and Future at Eclipse Foundation
Cloud Native Java: Present and Future at Eclipse Foundation
 
Building 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesBuilding 12-factor Cloud Native Microservices
Building 12-factor Cloud Native Microservices
 
JakartaOne Livestream CN4J: Driving Jakarta EE Success
JakartaOne Livestream CN4J: Driving Jakarta EE SuccessJakartaOne Livestream CN4J: Driving Jakarta EE Success
JakartaOne Livestream CN4J: Driving Jakarta EE Success
 
JakartaOne Livestream CN4J: Cloud Native Runtimes - Revolution or Evolution?
JakartaOne Livestream CN4J: Cloud Native Runtimes - Revolution or Evolution?JakartaOne Livestream CN4J: Cloud Native Runtimes - Revolution or Evolution?
JakartaOne Livestream CN4J: Cloud Native Runtimes - Revolution or Evolution?
 
JakartaOne Livestream CN4J: Bringing Reactive to Enterprise Developers
JakartaOne Livestream CN4J: Bringing Reactive to Enterprise DevelopersJakartaOne Livestream CN4J: Bringing Reactive to Enterprise Developers
JakartaOne Livestream CN4J: Bringing Reactive to Enterprise Developers
 
JakartaOne Livestream CN4J: Eclipse MicroProfile - Your Cloud-Native Companion
JakartaOne Livestream CN4J: Eclipse MicroProfile - Your Cloud-Native CompanionJakartaOne Livestream CN4J: Eclipse MicroProfile - Your Cloud-Native Companion
JakartaOne Livestream CN4J: Eclipse MicroProfile - Your Cloud-Native Companion
 
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
Kubernetes Native Java and Eclipse MicroProfile | EclipseCon Europe 2019
 
Jakarta for dummEEs | JakartaOne Livestream
Jakarta for dummEEs | JakartaOne LivestreamJakarta for dummEEs | JakartaOne Livestream
Jakarta for dummEEs | JakartaOne Livestream
 
Jakarta EE Meets NoSQL at the Cloud Age | JakartaOne Livestream
Jakarta EE Meets NoSQL at the Cloud Age | JakartaOne LivestreamJakarta EE Meets NoSQL at the Cloud Age | JakartaOne Livestream
Jakarta EE Meets NoSQL at the Cloud Age | JakartaOne Livestream
 
Turbocharged Java with Quarkus | JakartaOne Livestream
 Turbocharged Java with Quarkus | JakartaOne Livestream Turbocharged Java with Quarkus | JakartaOne Livestream
Turbocharged Java with Quarkus | JakartaOne Livestream
 
Jakarta RESTful Web Services: Status Quo and Roadmap | JakartaOne Livestream
Jakarta RESTful Web Services: Status Quo and Roadmap | JakartaOne LivestreamJakarta RESTful Web Services: Status Quo and Roadmap | JakartaOne Livestream
Jakarta RESTful Web Services: Status Quo and Roadmap | JakartaOne Livestream
 

KĂŒrzlich hochgeladen

Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 

KĂŒrzlich hochgeladen (20)

WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] đŸ„ Women's Abortion Clinic in T...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 

Building Interoperable Microservices With Eclipse MicroProfile| JakartaOne Livestream