SlideShare une entreprise Scribd logo
1  sur  63
Télécharger pour lire hors ligne
© Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0
Sai Boorlagadda
October 17, 2018
Geode GraphQL Extension
(G2QL)
Agenda
● GraphQL Introduction
● Geode + GraphQL = G2QL
● Demo
● Next Steps
GraphQL Introduction
REST vs GraphQL
What’s GraphQL?
● new API standard by Facebook
● query language for APIs
● declarative way of fetching &
updating data
Strong Community
> 75 companies using GraphQL
https://graphql.org/users/
Example: Blogging App
Example: Blogging App
Example: Blogging App
Example: Blogging App using REST
Overfetching and Underfetching
Product Centric APIs
backend APIs are storage-centric
frontend APIs are product-centric
GraphQL = Composition + Projections
Example: Blogging App using GraphQL
Core Concepts
Queries & Mutations
Queries
... only read data
query MessageQuery {
Message(id: “1”) {
text
sentBy {
name
}
}
}
Queries
... only read data
query MessageQuery {
Message(id: “1”) {
text
sentBy {
name
}
}
}
Operation Type
3 Operation Types:
- query (default)
- mutation
- subscription
Queries
... only read data
query MessageQuery {
Message(id: “1”) {
text
sentBy {
name
}
}
}
Operation Name
Queries
... only read data
query MessageQuery {
Message(id: “1”) {
text
sentBy {
name
}
}
}
Fields
Queries
... only read data
query MessageQuery {
Message(id: “1”) {
text
sentBy {
name
}
}
}
Root Field
Queries
... only read data
query MessageQuery {
Message(id: “1”) {
text
sentBy {
name
}
}
}
Selection Set
Queries
query MessageQuery {
Message(id: “1”) {
text
sentBy {
name
}
}
}
... only read data
{
“data”: {
“Message”: {
“text”: “Hello!”,
“sentBy”: {
“name”: “Bob”
}
}
}
}
Queries
query MessageQuery {
Message(id: “1”) {
text
sentBy {
name
}
}
}
... only read data
{
“data”: {
“Message”: {
“text”: “Hello!”,
“sentBy”: {
“name”: “Bob”
}
}
}
}
Queries
query MessageQuery {
Message(id: “1”) {
text
sentBy {
name
}
}
}
... only read data
{
“data”: {
“Message”: {
“text”: “Hello!”,
“sentBy”: {
“name”: “Bob”
}
}
}
}
Mutations
mutation CreateMessage {
createMessage(text:“Hi”) {
id
}
}
... write and read data
{
“data”: {
“createMessage”: {
“id”: “3”
}
}
}
Mutations
mutation CreateMessage {
createMessage(text:“Hi”) {
id
}
}
... write and read data
{
“data”: {
“createMessage”: {
“id”: “3”
}
}
}
Mutations
mutation CreateMessage {
createMessage(text:“Hi”) {
id
}
}
... write and read data
{
“data”: {
“createMessage”: {
“id”: “3”
}
}
}
Mutations
mutation CreateMessage {
createMessage(text:“Hi”) {
id
}
}
... write and read data
{
“data”: {
“createMessage”: {
“id”: “3”
}
}
}
Subscriptions
● event-based real-time updates
● clients subscribe to specific events
● usually implemented with websockets
GraphQL Server
Schema & Resolvers
GraphQL Server Components
● GraphQL Schema Definition
● Resolver Functions
● GraphQL execution layer
● Network layer
GraphQL Server Components
● GraphQL Schema Definition
● Resolver Functions
● GraphQL execution layer
● Network layer } graphql libraries
GraphQL Server Components
● GraphQL Schema Definition
● Resolver Functions
● GraphQL execution layer
● Network layer
} Developer
Responsibility
GraphQL Schema
GraphQL Schema
● Strongly typed & written in Schema
Definition Language(SDL)
● defines API capabilities ( = contract for
client-server communication)
● root types: Query, Mutation, Subscription
Example: CRUD for user type
type User {
id: String!
name: String!
}
type Query {
user (id: String): User,
users (id: [String]): [User]
}
type Mutation {
createUser (key: String!, user: User!): User,
updateUser (key: String!, user: User!): User,
deleteUser (key: String!): User
}
query {
user (id: “1“) {
name
}
}
{
“user”: {
“name”: “Bob”
}
}
1.Schema 2.Query 3.Response
GraphQL Resolvers
GraphQL Resolvers
@Component
public class UserDataFetcher implements DataFetcher<User> {
@Autowired
private final UserDao userDao;
@Override
public User get(DataFetchingEnvironment env) {
String userId = env.getArgument(“userId”);
return userDao.find(userId);
}
}
Common Problems
● Schema Duplication
● Boilerplate Overdose
● Client/Server Data Mismatch
● Superfluous Database Calls
first impressions
Schema Duplication
Solution: GraphQL Schema Generation
GraphQL Schema Database Schema
Boilerplate Overdose
● Define GraphQL Schema
● Write Resolvers for CRUD
Solution: Convert queries and mutation to Geode Operations and OQL
Client/Server data mismatch
Solution: Translate GraphQL to OQL
Post:
{
“id”: “1”,
“title”: “G2QL”,
. . .
. . .
“user”: {
“id”: “1”,
“name: “Sai”,
. . .
. . .
}
}
id userid title contents
1 1 G2QL G2QL is a ...
/Post
n+1 Database Calls
Problem: Schema Duplication
Solution: GraphQL Schema Generation
Problem: Boilerplate Overdose
Solution: Auto convert queries and mutation
to Geode Operations and OQL
Problem: Client/Server data mismatch
Solution: Convert GraphQL to OQL
Problem: Superfluous Database Calls
Solution: Batching & Caching
G2QL is the answer
Geode + GraphQL = G2QL
Geode GraphQL Extension
● Turns your cache into GraphQL API server
● Introspects and defines GraphQL schema
- types, queries, mutations
● Converts queries & mutations to Region
Operations and OQL
- no need to write resolvers
G2QL introspects your cache
type Customer {
fields: - from ValueConstraint
}
type Query {
customer(key: String): Customer,
customer(firstName: String): Customer
}
type Mutation {
createCustomer(key: String!, customer: customer!): Customer,
updateCustomer(key: String!, customer: Customer!): Customer,
deleteCustomer(key: String!): Customer
}
Regions
Customer<String, Customer>
Order<String, Order>
Indexes
create index --name=FirstNameIdx
--expression=firstName --
region=/Customer
Cache Configuration GraphQL Schema
Value Constraints == Types
G2QL introspects your cache
type Customer {
fields: - from ValueConstraint
}
type Query {
customer(key: String): Customer,
customer(firstName: String): Customer
}
type Mutation {
createCustomer(key: String!, customer: customer!): Customer,
updateCustomer(key: String!, customer: Customer!): Customer,
deleteCustomer(key: String!): Customer
}
Regions
Customer<String, Customer>
Order<String, Order>
Indexes
create index --name=FirstNameIdx
--expression=firstName --
region=/Customer
Cache Configuration GraphQL Schema
Queries with Key & Indexes
G2QL introspects your cache
type Customer {
fields: - from ValueConstraint
}
type Query {
customer(key: String): Customer,
customer(firstName: String): Customer
}
type Mutation {
createCustomer(key: String!, customer: customer!): Customer,
updateCustomer(key: String!, customer: Customer!): Customer,
deleteCustomer(key: String!): Customer
}
Regions
Customer<String, Customer>
Order<String, Order>
Indexes
create index --name=FirstNameIdx
--expression=firstName --
region=/Customer
Cache Configuration GraphQL Schema
Mutations with Region operations
G2QL in Action
@GeodeGraphQLDescription
@GeodeGraphqDescription(“A student is a Student”)
Class Student{
String id;
String name;
}
@GeodeGraphQLIgnore
@GeodeGraphqlIgnore
Class Student{
String id;
String name;
}
@GeodeGraphQLConnection
Class Person{
String id;
String name;
@GeodeGraphqlConnection(region=”/person”)
List<String> friends; //store keys to person objects
}
G2QL In Action
GraphQL clients
There are close to 100 libraries in >20 languages
https://github.com/chentsulin/awesome-graphql
Next Steps…
● Non-scalar keys
● Introspect PDX types
● Introspect Lucene indexes
● Introspect Functions
● Cache listeners
● Security
● GraphQL subscription
● GraphQL schema -> cache configuration
Questions?
References
● G2QL - https://github.com/sboorlagadda/g2ql
● GraphQL - https://graphql.org/
● Apollo GraphQL - https://www.apollographql.com/
● graphql-java - https://github.com/graphql-java/
○ Provides query parser, type system, schema parser, hooks to resolvers
Transforming How The World Builds Software
© Copyright 2017 Pivotal Software, Inc. All rights Reserved.

Contenu connexe

Tendances

Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfaces
deimos
 
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
NLJUG
 
Frank Mantek Google G Data
Frank Mantek Google G DataFrank Mantek Google G Data
Frank Mantek Google G Data
deimos
 

Tendances (20)

GraphQL in an Age of REST
GraphQL in an Age of RESTGraphQL in an Age of REST
GraphQL in an Age of REST
 
GraphQL Meetup Bangkok 3.0
GraphQL Meetup Bangkok 3.0GraphQL Meetup Bangkok 3.0
GraphQL Meetup Bangkok 3.0
 
MongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless World
 
Udi Dahan Intentions And Interfaces
Udi Dahan Intentions And InterfacesUdi Dahan Intentions And Interfaces
Udi Dahan Intentions And Interfaces
 
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and TypescriptMongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
MongoDB.local Berlin: Building a GraphQL API with MongoDB, Prisma and Typescript
 
Danilo Poccia - Real-Time Serverless Backends with GraphQL - Codemotion Berli...
Danilo Poccia - Real-Time Serverless Backends with GraphQL - Codemotion Berli...Danilo Poccia - Real-Time Serverless Backends with GraphQL - Codemotion Berli...
Danilo Poccia - Real-Time Serverless Backends with GraphQL - Codemotion Berli...
 
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
Modularity and Domain Driven Design; a killer Combination? - Tom de Wolf & St...
 
Frank Mantek Google G Data
Frank Mantek Google G DataFrank Mantek Google G Data
Frank Mantek Google G Data
 
GraphQL Fundamentals
GraphQL FundamentalsGraphQL Fundamentals
GraphQL Fundamentals
 
GraphQL Search
GraphQL SearchGraphQL Search
GraphQL Search
 
GraphQL & Prisma from Scratch
GraphQL & Prisma from ScratchGraphQL & Prisma from Scratch
GraphQL & Prisma from Scratch
 
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/MeteorWhy UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
Why UI Developers Love GraphQL - Sashko Stubailo, Apollo/Meteor
 
Danilo Poccia - Real-Time Serverless Backends with GraphQL - Codemotion Berli...
Danilo Poccia - Real-Time Serverless Backends with GraphQL - Codemotion Berli...Danilo Poccia - Real-Time Serverless Backends with GraphQL - Codemotion Berli...
Danilo Poccia - Real-Time Serverless Backends with GraphQL - Codemotion Berli...
 
Angular Interview Questions & Answers
Angular Interview Questions & AnswersAngular Interview Questions & Answers
Angular Interview Questions & Answers
 
Building Real-Time Serverless Backends with GraphQL | AWS Floor28
Building Real-Time Serverless Backends with GraphQL | AWS Floor28Building Real-Time Serverless Backends with GraphQL | AWS Floor28
Building Real-Time Serverless Backends with GraphQL | AWS Floor28
 
Introduction to Grails
Introduction to GrailsIntroduction to Grails
Introduction to Grails
 
Html5 Interview Questions & Answers
Html5 Interview Questions & AnswersHtml5 Interview Questions & Answers
Html5 Interview Questions & Answers
 
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
PiterPy 2016: Parallelization, Aggregation and Validation of API in PythonPiterPy 2016: Parallelization, Aggregation and Validation of API in Python
PiterPy 2016: Parallelization, Aggregation and Validation of API in Python
 
Apollo Server
Apollo ServerApollo Server
Apollo Server
 
GraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learnedGraphQL - when REST API is to less - lessons learned
GraphQL - when REST API is to less - lessons learned
 

Similaire à Simplify Access to Data from Pivotal GemFire Using the GraphQL (G2QL) Extension

Similaire à Simplify Access to Data from Pivotal GemFire Using the GraphQL (G2QL) Extension (20)

GraphQL the holy contract between client and server
GraphQL the holy contract between client and serverGraphQL the holy contract between client and server
GraphQL the holy contract between client and server
 
GraphQL and its schema as a universal layer for database access
GraphQL and its schema as a universal layer for database accessGraphQL and its schema as a universal layer for database access
GraphQL and its schema as a universal layer for database access
 
MongoDB World 2019: Building a GraphQL API with MongoDB, Prisma, & TypeScript
MongoDB World 2019: Building a GraphQL API with MongoDB, Prisma, & TypeScriptMongoDB World 2019: Building a GraphQL API with MongoDB, Prisma, & TypeScript
MongoDB World 2019: Building a GraphQL API with MongoDB, Prisma, & TypeScript
 
GraphQL + relay
GraphQL + relayGraphQL + relay
GraphQL + relay
 
Exposing GraphQLs as Managed APIs
Exposing GraphQLs as Managed APIsExposing GraphQLs as Managed APIs
Exposing GraphQLs as Managed APIs
 
Camunda GraphQL Extension (09/2017 Berlin)
Camunda GraphQL Extension (09/2017 Berlin)Camunda GraphQL Extension (09/2017 Berlin)
Camunda GraphQL Extension (09/2017 Berlin)
 
Managing GraphQL servers with AWS Fargate & Prisma Cloud
Managing GraphQL servers  with AWS Fargate & Prisma CloudManaging GraphQL servers  with AWS Fargate & Prisma Cloud
Managing GraphQL servers with AWS Fargate & Prisma Cloud
 
APIdays Helsinki 2019 - GraphQL API Management with Amit P. Acharya, IBM
APIdays Helsinki 2019 - GraphQL API Management with Amit P. Acharya, IBMAPIdays Helsinki 2019 - GraphQL API Management with Amit P. Acharya, IBM
APIdays Helsinki 2019 - GraphQL API Management with Amit P. Acharya, IBM
 
GraphQL API Gateway and microservices
GraphQL API Gateway and microservicesGraphQL API Gateway and microservices
GraphQL API Gateway and microservices
 
Getting Started with Spring for GraphQL
Getting Started with Spring for GraphQLGetting Started with Spring for GraphQL
Getting Started with Spring for GraphQL
 
Code-first GraphQL Server Development with Prisma
Code-first  GraphQL Server Development with PrismaCode-first  GraphQL Server Development with Prisma
Code-first GraphQL Server Development with Prisma
 
Graphql with Flamingo
Graphql with FlamingoGraphql with Flamingo
Graphql with Flamingo
 
Graphql usage
Graphql usageGraphql usage
Graphql usage
 
Domain Driven Design Tactical Patterns
Domain Driven Design Tactical PatternsDomain Driven Design Tactical Patterns
Domain Driven Design Tactical Patterns
 
CONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQLCONDG April 23 2020 - Baskar Rao - GraphQL
CONDG April 23 2020 - Baskar Rao - GraphQL
 
Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)
Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)
Build GraphQL APIs with Graphene (Big Mountain Data & Dev 2019)
 
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
 
GraphQL @ Manc.JS (March 2018)
GraphQL @ Manc.JS (March 2018)GraphQL @ Manc.JS (March 2018)
GraphQL @ Manc.JS (March 2018)
 
Graphql Overview By Chirag Dodia
Graphql Overview By Chirag DodiaGraphql Overview By Chirag Dodia
Graphql Overview By Chirag Dodia
 
Better APIs with GraphQL
Better APIs with GraphQL Better APIs with GraphQL
Better APIs with GraphQL
 

Plus de VMware Tanzu

Plus de VMware Tanzu (20)

What AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About ItWhat AI Means For Your Product Strategy And What To Do About It
What AI Means For Your Product Strategy And What To Do About It
 
Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023Make the Right Thing the Obvious Thing at Cardinal Health 2023
Make the Right Thing the Obvious Thing at Cardinal Health 2023
 
Enhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at ScaleEnhancing DevEx and Simplifying Operations at Scale
Enhancing DevEx and Simplifying Operations at Scale
 
Spring Update | July 2023
Spring Update | July 2023Spring Update | July 2023
Spring Update | July 2023
 
Platforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a ProductPlatforms, Platform Engineering, & Platform as a Product
Platforms, Platform Engineering, & Platform as a Product
 
Building Cloud Ready Apps
Building Cloud Ready AppsBuilding Cloud Ready Apps
Building Cloud Ready Apps
 
Spring Boot 3 And Beyond
Spring Boot 3 And BeyondSpring Boot 3 And Beyond
Spring Boot 3 And Beyond
 
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdfSpring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
Spring Cloud Gateway - SpringOne Tour 2023 Charles Schwab.pdf
 
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
Simplify and Scale Enterprise Apps in the Cloud | Boston 2023
 
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
Simplify and Scale Enterprise Apps in the Cloud | Seattle 2023
 
tanzu_developer_connect.pptx
tanzu_developer_connect.pptxtanzu_developer_connect.pptx
tanzu_developer_connect.pptx
 
Tanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - FrenchTanzu Virtual Developer Connect Workshop - French
Tanzu Virtual Developer Connect Workshop - French
 
Tanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - EnglishTanzu Developer Connect Workshop - English
Tanzu Developer Connect Workshop - English
 
Virtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - EnglishVirtual Developer Connect Workshop - English
Virtual Developer Connect Workshop - English
 
Tanzu Developer Connect - French
Tanzu Developer Connect - FrenchTanzu Developer Connect - French
Tanzu Developer Connect - French
 
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
Simplify and Scale Enterprise Apps in the Cloud | Dallas 2023
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
SpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software EngineerSpringOne Tour: The Influential Software Engineer
SpringOne Tour: The Influential Software Engineer
 
SpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs PracticeSpringOne Tour: Domain-Driven Design: Theory vs Practice
SpringOne Tour: Domain-Driven Design: Theory vs Practice
 
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense SolutionsSpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
SpringOne Tour: Spring Recipes: A Collection of Common-Sense Solutions
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Dernier (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

Simplify Access to Data from Pivotal GemFire Using the GraphQL (G2QL) Extension