SlideShare una empresa de Scribd logo
1 de 45
Descargar para leer sin conexión
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Roberto Cortez, César Hernández
GraalVM and MicroProfile:
A Polyglot Microservices Solution
@CesarHgt @ivanjunckes @tomitribetomitribe.com/codeone/dev5933/
SPEAKERS
Roberto Cortez
● Blogger, Youtuber, Speaker
● +10 years of experience with Java
César Hernández
● Senior Software Engineer at Tomitribe
● Java Champion
● Duke’s Choice Award 2016, 2017
● Oracle Certified Professional
● +10 experience with Java EE
● Eclipse Committer: Jakarta EE TCK,
JAX-WS and Microprofile.
● Open Source advocate, teacher and
public speaker
● Senior Software Engineer at Tomitribe
● Java Champion & Oracle Groundbreaker
● JUG Leader Coimbra JUG & vJUG
● JNation Conference Founder & Organizer
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Questions?
As soon as you have them!
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Agenda
● Microservices!
● What is GraalVM?
● What is MicroProfile?
● Demos
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Microservices anyone?
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Microservices
● Have you heard about Microservices?
● How big is a micro?
● Who develops Microservices?
● Who deploys Microservices?
● Who likes Microservices?
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
What do others think?
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
What do others think?
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
What do others think?
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
What do others think?
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Why Microservices?
● Deliver new features quicker
● Smaller, agile teams
● Scale services independently
● Cloud
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Microservice Hell?
● Supporting Multiple Languages
○ Java (and JVM Languages), Node, Python, Ruby, PHP, Go, etc, etc.
● Different libraries to cover same features
● Increased complexity
● Research time
● May need to rewrite your libraries for all languages
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
GraalVM
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
GraalVM
● Universal virtual machine
● JavaScript, Python, Ruby, R, JVM-based languages (Java, Scala, Kotlin),
and LLVM-based languages (C and C++)
● Open Source Project (GPL2 /w CPE)
● https://www.graalvm.org/
● https://github.com/oracle/graal
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
GraalVM Architecture
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
DEMO
Installation and run a simple app with GraalVM
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Why GraalVM?
● Native Images
● Interoperability
● Reuse Libraries
● Shared Tools
● Run Java faster
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Native Image
native-image -cp target/number.api.jar
org.tomitribe.graalvm.microprofile.number.api.NumberResource
native-image -jar target/number-api.jar
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
DEMO
Native image Java app with GraalVM
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Interoperability
var fileClass = Java.type("java.io.File");
var file = new FileClass("file.txt");
file.exists();
var file = new (Java.type("java.io.File"))("file.txt");
var pathSeparator = Java.type("java.io.File").pathSeparator;
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Reuse Libraries
--jvm allows you to execute the application in the JVM and pass in a
classpath to use libraries.
node --jvm --jvm.cp=library.jar app.js
ruby --jvm --jvm.cp=library.jar ruby.rb
graalpython --jvm --jvm.cp=library.jar python.py
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
NPM module, Ruby gem or R package compatibility?
https://www.graalvm.org/docs/reference-manual/compatibility/
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
MicroProfile
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
MicroProfile
● http://microprofile.io
● Enterprise Java for MicroServices
● Open Source (Eclipse)
● Implemented by different vendors.
● Application portability across runtimes.
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
MicroProfile 2.1
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
MicroProfile Implementations
● Apache TomEE
● Payara Micro
● Thorntail
● WebSphere Liberty
● KumuluzEE
● SmallRye
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
What is TomEE?
● Tomcat + Jakarta EE = TomEE
● Built within the OpenEJB community to offer a lightweight alternative
with Tomcat being the top dog.
● TomEE 8 is a MicroProfile implementation
● Supports MicroProfile 1.3.
● Planned support for MicroProfile 2.x.
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Configuration
● Applications need configuration based on their running environment
● It must be possible to change configuration without repacking the
application.
● Java - MicroProfile Config
● Node - Node Convict
● Ruby - dotenv?
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
MicroProfile Config
Config config = ConfigProvider.getConfig();
String url = config.getValue("connection.url", String.class);
String optionalUrl = config.getOptionalValue("connection.url",
String.class).orElse("something");
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Demo
MicroProfile Config in Node and Ruby app
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Fault Tolerance
● Guide the execution and result of some logic
● Circuit Breaker, TimeOut, Retry, Fallback and Bulkhead
● Java - MicroProfile Config
● Node - Opossum
● Ruby - CircuitBox
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
MicroProfile Fault Tolerance
@CircuitBreaker
@Fallback(NumberFallbackHandler.class)
public String getNumber();
public class NumberFallbackHandler implements FallbackHandler<String> {
@Override
public String handle(final ExecutionContext executionContext) {
...
}
}
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Rest Client
● Microservices typically talk REST to other services
● Consistent and easy to use
● Java - MicroProfile Rest Client (inspired by Feign)
● Node - Node Rest Client
● Ruby - Ruby Rest Client
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
MicroProfile Rest Client
@Dependent
@RegisterRestClient
@Path("/number")
@Produces(MediaType.TEXT_PLAIN)
@Consumes(MediaType.TEXT_PLAIN)
public interface NumberResourceClient {
@GET
@Path("/generate")
String getNumber();
}
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
DEMO
MicroProfile Rest Client and Fault Tolerance in Ruby and Python app
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Security
● Security Token
● Lightweight way to propagate identities across different services
● Java - MicroProfile JWT Propagation
● Node - express-jwt
● Ruby - ruby-jwt
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Health Check
● Probe the state of a computer node
● Automated processes to maintain the state of the nodes
● Java - MicroProfile Healthchecks
● Node - express-healthcheck
● Ruby - okcomputer
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Metrics
● Monitor essential System Parameters
● Ensure reliable operation of Software
● Java - MicroProfile Metrics
● Node - appmetrics
● Ruby - ???
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
DEMO
Polyglot App with Microprofile Architecture
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
movies-app
Angular JS,
Java
API
Gateway
comments-api
NodeJS
number-api
NodeJS,
Ruby, Java
libraries.jar
Java
number-api-client
Ruby, Python
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Limitations
● Dynamic Class Loading (native images)
https://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md
● Manage your own classpath (for integration)
● Lack of tooling
● Not much information around
● Python still in early support stage. No support for Rails.
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Production Ready?
● OK for JVM Languages and JS
● Other languages may not work fully
● Twitter is using it in production already
● Consider performance
● Try it out!
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
Final Thoughts
● GraalVM could potentially improve MicroServices development
● It could help bring technologies together
● Pick one of your favorites languages (from the supported ones)
● Consistency
● No boundaries
@radcortez @CesarHgt @tomitribehttps://www.tomitribe.com/codeone/dev6016/
https://www.tomitribe.com/codeone/dev6016
https://github.com/tomitribe/graalvm-microprofile
Slides and demo
Contact us @TOMITRIBE

Más contenido relacionado

La actualidad más candente

Phpforandroid en
Phpforandroid enPhpforandroid en
Phpforandroid en
ivmos
 
Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web AppsRatpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web Apps
James Williams
 

La actualidad más candente (20)

Phpforandroid en
Phpforandroid enPhpforandroid en
Phpforandroid en
 
What can possibly go wrong if i dont e2 e test my packages?
What can possibly go wrong if i dont e2 e test my packages?What can possibly go wrong if i dont e2 e test my packages?
What can possibly go wrong if i dont e2 e test my packages?
 
Ratpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web AppsRatpack - Classy and Compact Groovy Web Apps
Ratpack - Classy and Compact Groovy Web Apps
 
Modules in Java? Finally! (OpenJDK 9 Jigsaw, JSR376)
Modules in Java? Finally! (OpenJDK 9 Jigsaw, JSR376)Modules in Java? Finally! (OpenJDK 9 Jigsaw, JSR376)
Modules in Java? Finally! (OpenJDK 9 Jigsaw, JSR376)
 
Integrating react in django while staying sane and happy
Integrating react in django while staying sane and happyIntegrating react in django while staying sane and happy
Integrating react in django while staying sane and happy
 
Laravel Nova: czy to się w ogóle opłaca?
Laravel Nova: czy to się w ogóle opłaca?Laravel Nova: czy to się w ogóle opłaca?
Laravel Nova: czy to się w ogóle opłaca?
 
Geb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosperGeb+spock: let your functional tests live long and prosper
Geb+spock: let your functional tests live long and prosper
 
Pluginize ALL the things
Pluginize ALL the thingsPluginize ALL the things
Pluginize ALL the things
 
What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?What's This React Native Thing I Keep Hearing About?
What's This React Native Thing I Keep Hearing About?
 
Go at Skroutz
Go at SkroutzGo at Skroutz
Go at Skroutz
 
Integration of automation framework with ci tools
Integration of automation framework with ci toolsIntegration of automation framework with ci tools
Integration of automation framework with ci tools
 
QA 4 python
QA 4 pythonQA 4 python
QA 4 python
 
WordPress automation and CI
WordPress automation and CIWordPress automation and CI
WordPress automation and CI
 
RxSwift
RxSwiftRxSwift
RxSwift
 
Developing Apps With React Native
Developing Apps With React NativeDeveloping Apps With React Native
Developing Apps With React Native
 
Getting Started With Django
Getting Started With DjangoGetting Started With Django
Getting Started With Django
 
SOA.2020
SOA.2020SOA.2020
SOA.2020
 
Lets cook cucumber !!
Lets cook cucumber !!Lets cook cucumber !!
Lets cook cucumber !!
 
Making sense of streaming
Making sense of streamingMaking sense of streaming
Making sense of streaming
 
Laravel, il framework php per gli artigiani del web
Laravel, il framework php per gli artigiani del webLaravel, il framework php per gli artigiani del web
Laravel, il framework php per gli artigiani del web
 

Similar a GraalVM and MicroProfile - A Polyglot Microservices Solution

Rapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformRapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 Platform
WSO2
 
GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009
marpierc
 

Similar a GraalVM and MicroProfile - A Polyglot Microservices Solution (20)

2018 (codeone) Graal VM and MicroProfile a polyglot microservices solution [d...
2018 (codeone) Graal VM and MicroProfile a polyglot microservices solution [d...2018 (codeone) Graal VM and MicroProfile a polyglot microservices solution [d...
2018 (codeone) Graal VM and MicroProfile a polyglot microservices solution [d...
 
Creando microservicios con java micro profile y tomee - CUNORI 2020
Creando microservicios con java micro profile y tomee - CUNORI 2020Creando microservicios con java micro profile y tomee - CUNORI 2020
Creando microservicios con java micro profile y tomee - CUNORI 2020
 
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUG
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUGCreando microservicios con Java, Microprofile y TomEE - Baranquilla JUG
Creando microservicios con Java, Microprofile y TomEE - Baranquilla JUG
 
Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020
Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020
 
JHipster Conf 2018 : Connect your JHipster apps to the world of APIs with Ope...
JHipster Conf 2018 : Connect your JHipster apps to the world of APIs with Ope...JHipster Conf 2018 : Connect your JHipster apps to the world of APIs with Ope...
JHipster Conf 2018 : Connect your JHipster apps to the world of APIs with Ope...
 
Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019Get Hip with JHipster - GIDS 2019
Get Hip with JHipster - GIDS 2019
 
How to Contribute to Apache Usergrid
How to Contribute to Apache UsergridHow to Contribute to Apache Usergrid
How to Contribute to Apache Usergrid
 
Kubernetes debug like a pro
Kubernetes debug like a proKubernetes debug like a pro
Kubernetes debug like a pro
 
Creando microservicios con Java MicroProfile y TomEE - OGBT
Creando microservicios con Java MicroProfile y TomEE  - OGBTCreando microservicios con Java MicroProfile y TomEE  - OGBT
Creando microservicios con Java MicroProfile y TomEE - OGBT
 
Game of Streams: How to Tame and Get the Most from Your Messaging Platforms
Game of Streams: How to Tame and Get the Most from Your Messaging PlatformsGame of Streams: How to Tame and Get the Most from Your Messaging Platforms
Game of Streams: How to Tame and Get the Most from Your Messaging Platforms
 
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
Paving the road with Jakarta EE  and Apache TomEE - JCON 2021Paving the road with Jakarta EE  and Apache TomEE - JCON 2021
Paving the road with Jakarta EE and Apache TomEE - JCON 2021
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
 
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
 
Using Javascript in today's world
Using Javascript in today's worldUsing Javascript in today's world
Using Javascript in today's world
 
Deep dive into Android async operations
Deep dive into Android async operationsDeep dive into Android async operations
Deep dive into Android async operations
 
Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017Front End Development for Back End Developers - UberConf 2017
Front End Development for Back End Developers - UberConf 2017
 
Rapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 PlatformRapid Application Development with WSO2 Platform
Rapid Application Development with WSO2 Platform
 
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !
 
GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009GTLAB Installation Tutorial for SciDAC 2009
GTLAB Installation Tutorial for SciDAC 2009
 
GWT Web Socket and data serialization
GWT Web Socket and data serializationGWT Web Socket and data serialization
GWT Web Socket and data serialization
 

Más de Roberto Cortez

Coimbra JUG - 2º Encontro - O primeiro contacto com Java EE 7
Coimbra JUG - 2º Encontro - O primeiro contacto com Java EE 7Coimbra JUG - 2º Encontro - O primeiro contacto com Java EE 7
Coimbra JUG - 2º Encontro - O primeiro contacto com Java EE 7
Roberto Cortez
 
Coimbra JUG - 1º Encontro - As novidades do Java 8
Coimbra JUG - 1º Encontro - As novidades do Java 8Coimbra JUG - 1º Encontro - As novidades do Java 8
Coimbra JUG - 1º Encontro - As novidades do Java 8
Roberto Cortez
 

Más de Roberto Cortez (14)

Baking a Microservice PI(e)
Baking a Microservice PI(e)Baking a Microservice PI(e)
Baking a Microservice PI(e)
 
Deconstructing and Evolving REST Security
Deconstructing and Evolving REST SecurityDeconstructing and Evolving REST Security
Deconstructing and Evolving REST Security
 
Lightweight Enterprise Java With Microprofile
Lightweight Enterprise Java With MicroprofileLightweight Enterprise Java With Microprofile
Lightweight Enterprise Java With Microprofile
 
Cluster your MicroProfile Application using CDI and JCache
Cluster your MicroProfile Application using CDI and JCacheCluster your MicroProfile Application using CDI and JCache
Cluster your MicroProfile Application using CDI and JCache
 
Java EE 7 meets Java 8
Java EE 7 meets Java 8Java EE 7 meets Java 8
Java EE 7 meets Java 8
 
Maven - Taming the Beast
Maven - Taming the BeastMaven - Taming the Beast
Maven - Taming the Beast
 
The First Contact with Java EE 7
The First Contact with Java EE 7The First Contact with Java EE 7
The First Contact with Java EE 7
 
Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7Migration tales from java ee 5 to 7
Migration tales from java ee 5 to 7
 
Development Horror Stories
Development Horror StoriesDevelopment Horror Stories
Development Horror Stories
 
The 5 People in your Organization that grow Legacy Code
The 5 People in your Organization that grow Legacy CodeThe 5 People in your Organization that grow Legacy Code
The 5 People in your Organization that grow Legacy Code
 
Java EE 7 Batch processing in the Real World
Java EE 7 Batch processing in the Real WorldJava EE 7 Batch processing in the Real World
Java EE 7 Batch processing in the Real World
 
Geecon 2014 - Five Ways to Not Suck at Being a Java Freelancer
Geecon 2014 - Five Ways to Not Suck at Being a Java FreelancerGeecon 2014 - Five Ways to Not Suck at Being a Java Freelancer
Geecon 2014 - Five Ways to Not Suck at Being a Java Freelancer
 
Coimbra JUG - 2º Encontro - O primeiro contacto com Java EE 7
Coimbra JUG - 2º Encontro - O primeiro contacto com Java EE 7Coimbra JUG - 2º Encontro - O primeiro contacto com Java EE 7
Coimbra JUG - 2º Encontro - O primeiro contacto com Java EE 7
 
Coimbra JUG - 1º Encontro - As novidades do Java 8
Coimbra JUG - 1º Encontro - As novidades do Java 8Coimbra JUG - 1º Encontro - As novidades do Java 8
Coimbra JUG - 1º Encontro - As novidades do Java 8
 

Último

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 

GraalVM and MicroProfile - A Polyglot Microservices Solution