SlideShare a Scribd company logo
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
David	Delabassee	
@delabassee	
Oracle	
REST	in	an	Async	World	
Israel	–	July	2017
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 2
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 3
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Safe	Harbor	Statement	
The	following	is	intended	to	outline	our	general	product	direcPon.	It	is	intended	for	
informaPon	purposes	only,	and	may	not	be	incorporated	into	any	contract.	It	is	not	a	
commitment	to	deliver	any	material,	code,	or	funcPonality,	and	should	not	be	relied	upon	
in	making	purchasing	decisions.	The	development,	release,	and	Pming	of	any	features	or	
funcPonality	described	for	Oracle’s	products	remains	at	the	sole	discrePon	of	Oracle.	
4
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Agenda	
•  REST	&	JAX-RS	
•  Synchronous	vs.	Asynchronous	
•  Client-side	vs.	Server-side	
5
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Client-side	REST	
ConfidenPal	–	Oracle	Internal/Restricted/Highly	Restricted	 6
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	
•  Java	API	for	RESTful	Web	Services	
– JAX-RS	2.0	–	JSR	339	(*)	
– JAX-RS	2.1	–	JSR	370	
•  Standard	based	RESTful	framework		
– Server-side	and	client-side	
– Jersey,	JBoss	RESTEasy,	Restlet,	Apache	CXF,	Apache	Wink,	IBM	JAX-RS,	…	
•  Java	SE	and	Java	EE	
7
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 8	
Client	client	=	ClientBuilder.newClient();	
	
WebTarget	target	=	client.target("http://weath.er/api")	
																									.queryParam("city",	"Paris”);	
	
	
Forecast	forecast	=	target.request()	
																										.get(Forecast.class);	
	
…	
client.close();	
	
	
JAX-RS	Client	API
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	Client	API	
•  Client	
– Client	side	container	
– Customizable	&	tunable	
• E.g.	executorService()	(new	in	JAX-RS	2.1!)	
•  WebTarget	
– Target	remote	URI	
– Build	from	a	client	
– path()	+	resolveTemplates(),	queryParam(),	matrixParam()	
javax.ws.rs.client.Client	interface	
	
9
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	Client	API	
•  Request	invocaPon	builder	
– Build	from	a	WebTarget	
– acceptXXX(),	cookie(),	header(),	cacheControl()…	
– HTTP	methods	
	
javax.ws.rs.client.Client	interface	
	
10
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	Client	API	
•  Fluent	API	
– Client	Builder	è	Client	è	Web	Target	è	Request	building	è	Response	
javax.ws.rs.client.Client	interface	
	
11	
List<Forecast>	forecast	=	ClientBuilder.newClient()	
																																							.target("http://weath.er/cities")	
																																							.request()	
																																							.accept("application/json")	
																																							.header("Foo","bar")	
																																							.get(new	GenericType<List<Forecast>>()	{});
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	Client	API	
•  Synchronous	invoker	
	
	
•  Asynchronous	invoker	
	
12	
String	city	=	client.target("http://locati.on/api")	
																				.queryParam("city",	"Paris")	
																				.request()	
																				.get(String.class);	
Future<String>	fCity	=	client.target("http://locati.on/api")	
																													.queryParam("city",	"Paris")	
																													.request()																																
																													.async()	
																													.get(String.class);
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	Client	API	
Asynchronous	invoca.on	
13	
Future<String>	fCity	=	client.target("http://locati.on/api")	
																										…	
	 	 				.request()																																
																									.async()	
																									.get(String.class);	
		
String	city	=	future.get();
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	Client	API	
Asynchronous	invoca.on	
14	
Future<String>	fCity	=	client.target("http://locati.on/api")	
																										…	
	 	 				.request()																																
																									.async()	
																									.get(String.class);	
		
try	{	
	
					String	city	=	future.get(4,	TimeUnit.SECONDS);	
	
}	catch(TimeoutException	timeout)	{	
					…		
}
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	Client	API	
Asynchronous	invoca.on	
15	
Future<String>	future	=	client.target("http://locati.on/api")	
																										…	
	 	 				.request()																																
																									.async()	
																									.get(String.class);	
	
while	(!future.isDone())	{		
				//	response	hasn't	been	received	yet	
				…	
}	
	
String	city	=	f.get();	
…	
	
	
//	Set	ClientProperties.CONNECT_TIMEOUT	&	READ_TIMEOUT
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	Client	API	
•  InvocaPonCallback	Interface	
– javax.ws.rs.client.InvocaPonCallback<RESPONSE>	
•  Container	will	receive	asynchronous	processing	events	from	an	
invocaPon	
– completed(RESPONSE	response)	
– failed(Throwable	throwable)	
16	
Asynchronous	invoca.on
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	Client	API	
17	
Invoca.onCallback	
…	
WebTarget	myResource	=	client.target("http://examp.le/api/read");	
Future<Customer>	future	=	myResource.request(MediaType.TEXT_PLAIN)	
								.async()	
								.get(new	InvocationCallback<Customer>()	{		
													@Override	
													public	void	completed	(Customer	customer)	{	
																	//	do	something	with	the	given	customer	
													}		
													@Override	
													public	void	failed	(Throwable	throwable)	{	
																//	Oops!	
													}		
								});
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 18	
The	Travel	Service
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
The	Travel	Service	-	Synchronous	
•  Customer	details:	150	ms	
•  Recommended	desPnaPons:	250	ms	
•  Price	calculaPon	for	a	customer	and	desPnaPon:	170	ms	(each)	
•  Weather	forecast	for	a	desPnaPon:	330	ms	(each)	
	
19	
5	400	ms
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
The	Travel	Service	-	Asynchronous	
20	
730	ms
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 21	
The	Travel	Service
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 22	
The	Travel	Service	
destination.path("recommended").request()	
					.header("Rx-User",	"Async")	
					.async()	
					.get(new	InvocationCallback<List<Destination>>()	{	
									@Override	
									public	void	completed(final	List<Destination>	recommended)	{	
												final	CountDownLatch	innerLatch	=	new	CountDownLatch(recommended.size());	
												final	Map<String,	Forecast>	forecasts	=		
																																								Collections.synchronizedMap(new	HashMap<>());	
												for	(final	Destination	dest	:	recommended)	{	
																forecast.resolveTemplate("dest",	dest.getDestination()).request()	
																								.async()	
																								.get(new	InvocationCallback<Forecast>()	{	
																													@Override	
																													public	void	completed(final	Forecast	forecast)	{	
																																	forecasts.put(dest.getDestination(),	forecast);	
																																	innerLatch.countDown();	
																													}
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 23	
JAX-RS	2.0	
																											@Override	
																											public	void	failed(final	Throwable	throwable)	{	
																																		innerLatch.countDown();	
																															}	
																											});	
																}	
																try	{	
																				if	(!innerLatch.await(10,	TimeUnit.SECONDS))	{	//	timeout	}	
																}	catch	(final	InterruptedException	e)	{	//	Ooops,	interrupted!	}	
	
																//	Continue	with	processing…	
												}	
												@Override	
												public	void	failed(final	Throwable	throwable)	{	//	Recommendation	error	}	
									});
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 24	
JAX-RS	2.1	
//	JAX-RS	2.1	
CompletionStage<Response>	csResponse	=	ClientBuilder.newClient()	
								.target("http://example.com/api")	
								.request()	
								.rx()	
								.get();	
Future<Response>	fResponse	=	ClientBuilder.newClient()	
								.target("http://example.com/api")	
								.request()	
								.async()	
								.get();	
Response	response	=	ClientBuilder.newClient()	
								.target("http://example.com/api")	
								.request()	
								.get();
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
ComplePonStage	interface	
•  “A	stage	of	a	possibly	asynchronous	computaPon,	that	performs	an	
ac.on	or	computes	a	value”	
•  “On	termina.on	a	stage	may	in	turn	trigger	other	dependent	stages.”	
•  Stage	execuPon	triggered	by	complePon	of	
– “then”	-	a	single	stage	
– “combine”	-	both	of	two	stages	
– “either”	-	either	of	two	stages	
25
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
ComplePonStage	interface	
•  ComputaPon	takes	an	argument	and	returns	a	result?	
– “apply”	–	Func.on	take	result	of	the	previous	stage	as	argument,	return	a	result	
– “accept”	–	Consumer	only	take	an	argument	
– “run”	–	Runnable	no	argument	and	doesn’t	return	a	result	
•  How	the	execuPon	of	the	computaPon	is	arranged?	
– Doesn't	end	with	“async”	–	execute	using	the	stage’s	default	execuPon	facility	
– End	with	“async”	-	use	the	stage’s	default	asynchronous	execuPon	facility	
•  …	
26	
hsps://docs.oracle.com/javase/8/docs/api/java/uPl/concurrent/ComplePonStage.html
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 27	
JAX-RS	2.1	
CompletionStage<Number>	csPrice	=	client.target("price/{destination}")	
											.resolveTemplate("destination",	"Paris")	
											.request()	
											.rx()	
											.get(Number.class);	
	
CompletionStage<String>	csForecast	=	client.target("forecast/{destination}")	
											.resolveTemplate("destination",	"Paris")	
											.request()	
											.rx()	
											.get(String.class);	
	
csPrice.thenCombine(	csForecast,	(price,	forecast)	->	book(price,	forecast)	);
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 28	
Demo	
The	Travel	Service	
hsps://github.com/jersey/jersey/tree/master/examples/rx-client-webapp
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	Client	API	
•  REST	Client	Side	container	
•  Synchronous	invoker	
– Default	invoker	-	javax.ws.rs.client.SyncInvoker	
•  Asynchronous	invokers	
– async()	invoker	-	javax.ws.rs.client.AsyncInvoker	
•  Might	block	->	InvocaPonCallback	
– ReacPve	rx()	invoker	-	javax.ws.rs.client.RxInvoker	
•  New	in	JAX-RS	2.1!	
•  ComplePonStage	API	+	other	ReacPve	library	(opt.)	
29	
Summary
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Server-side	REST	
ConfidenPal	–	Oracle	Internal/Restricted/Highly	Restricted	 30
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 31	
Server-side	
@Path("/Item")	
public	class	ItemResource	{	
	
			@Path("{id}")	
			@Produces(MediaType.APPLICATION_XML)	
			public	ItemResource	getItemResource(@PathParam("id")	String	id)	{	
							return	ItemResource.getInstance(id);	
			}	
				
			@POST	
			@Consumes(MediaType.APPLICATION_XML)	
			@Produces(MediaType.APPLICATION_XML)	
			public	Response	createItem(@QueryParam("name")	String	name)	{	
							//...	
							return	Response.status(Status.OK).entity(…).build();	
			}	
}
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	 32	
Server-side	Async	
	
	
@Path("/Async")	
public	class	ItemResource	{	
					
				@GET	
				public	void	heavyResource(@Suspended	AsyncResponse	ar)	{	
																	
								mes.execute(new	Runnable()	{	
																@Override	
																public	void	run()	{	
																				try	{	
																								//	long	running	computation...	
																								ar.resume(Response.ok(...).build());																									
																				}	catch	(InterruptedException	ex)	{	
																								//	Ooops!	
																				}	
																}	
												});	
				...
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Server-side	Async	
•  Provides	means	for	asynchronous	server	side	response	processing	
– Injectable	via	@Suspended	
OR	
– Resource	method	can	return	a	ComplePonStage<T>	instance	(new	in	JAX-RS	2.1!)	
•  Bound	to	the	request	
– Suspend	
– Resume	
– Configure	
– Cancel	
33	
AsyncResponse	interface
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Server-side	Async	
34	
Client	 Server	
@Suspended		
AsyncResponse.resume(…)	
Long	running	operaPon…	
Request	
Response
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Long	running	REST	operaPons	
è POST	
...		long	running	operaPon	...	
ç ‘201	Created’	+	LocaPon	
35	
è POST		
ç ‘202	Accepted’	+	Temp	LocaPon	
			
è GET	Temp	LocaPon	
ç ‘200	OK’	(+	ETA)	
…	
è GET	Temp	LocaPon		
ç ‘303	See	Other’	+	Final	LocaPon
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Server-sent	Events	
•  Persistent,	one-way	communicaPon	channel	
•  Text	protocol,	special	media	type	"text/event-stream"	
•  Server	can	send	mulPple	messages	(events)	to	a	client	
•  Can	contain	id,	name,	comment	retry	interval	
•  Supported	in	all	modern	browsers	
36
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	2.1	
37	
SSE	
•  SseEvent	
– ID,	Name,	Comment,	…	
•  OutboundSseEvent	
– Server-side	representaPon	of	a	Server-sent	event	
– OutboundSseEvent.Builder()	
•  InboundSseEvent	
– Client-side	representaPon	of	a	Server-sent	event
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	2.1	
38	
SSE	–	Server	side	
•  SseEventSink	
– Outbound	Server-Sent	Events	stream	
– SseBroadcaster	
		 @GET	
@Path	("sse")	
@Produces(MediaType.SERVER_SENT_EVENTS)	
public	void	eventStream(@Context	SseEventSink	eventSink,		@Context	SSE	sse)	{	
				...	
										eventSink.send(	sse.newEvent("an	event")	);	
										eventSink.send(	sse.newEvent("another	event")	);	
				...	
				eventSink.close();	
}
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	2.1	
39	
SSE	–	Client	side	
•  SseEventSource	
– Client	for	processing	incoming	Server-Sent	Events	
	
SseEventSource	es	=	SseEventSource.target(SSE_target)	
																																		.reconnectingEvery(5,	SECONDS)	
																																		.build();	
es.register(System.out::println);	//	InboundSseEvent	consumer	
es.register(...);	//	Throwable	consumer	
es.open();	
...	
es.close();
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Wrap-up	
ConfidenPal	–	Oracle	Internal/Restricted/Highly	Restricted	 40
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	
•  Java	API	for	RESTful	Web	Services	
– JAX-RS	2.0	–	JSR	339	(*)	
– JAX-RS	2.1	–	JSR	370	
•  Standard	based	RESTful	framework		
– Server-side	and	client-side	
– Java	SE	and	Java	EE	
– Jersey,	JBoss	RESTEasy,	Restlet,	Apache	CXF,	Apache	Wink,	IBM	JAX-RS,	…	
41
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	–	Client-side	
•  REST	Client	Side	container	
•  Invokers	
– Synchronous	
•  javax.ws.rs.client.SyncInvoker	
•  Default	
– Asynchronous	
•  javax.ws.rs.client.AsyncInvoker	
– ReacPve	
•  New	in	JAX-RS	2.1!	
•  javax.ws.rs.client.AsyncInvoker	
42
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	–	Client-side	
43	
Sync	 Async	 RX	
Performance	and	scalability	 ✗✗	 ✔	 ✔	
Easy	to	develop	and	maintain	 ✔	 ✗	 ✔	
…	complex	workflow	 ✗	 ✗	 ✔	
…	error	handling	 ✗	 ✗	 ✔	
Leverage	new	Java	SE	feature	 ✗	 ✗	 ✔
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	–ReacPve	Client	API	
•  Java	SE	8	ComplePon	Stage	
– As	mandated	by	the	spec.	
•  Jersey	
– RxJava	-	rx.Observable	
– RxJava	2	-	io.reacPvex.Flowable	
– Guava	-	ListenableFuture	
44
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
JAX-RS	–	Server-side	
•  AsyncResponse	
– Resume	execuPon	on	a	different	thread	
– @Suspended	
– Resource	method	returning	a	ComplePonStage<T>	instance	
•  Long	running	operaPon	pasern	
•  Server-sent	Events	
45
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Java	EE	8	
46	
Bean	Valida.on	
CDI	2.0	
JSON-B	1.0	
Security	1.0	
Bean	Valida.on	
2.0	
JSF	2.3	
Servlet	4.0	
JSON-P	1.1	
JAX-RS	2.1	 ReacPve	client	API,	Server-sent	events,	…	
HTTP/2,	server	push,	…	
Java	<->	JSON	binding	
Updates	to	JSON	standards,	JSON	Collectors,	…	
Async	event,	event	priority,	SE	support,	…	
Embrace	Java	SE	8,	new	constraints	
Improved	CDI,	WebSocket,	SE	8	integraPon,	…	
Standardized	IdenPty	Store,	AuthenPcaPon,	Security	Context
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Java	EE	8	
•  Work	in	progress	
– Final	Release	-	Summer	2017	(plan)	
•  Open	Source	Reference	ImplementaPons	
– hsps://github.com/jersey	
– hsps://github.com/javaee	
•  Stay	tuned…	
– hsps://blogs.oracle.com/theaquarium/	
	
47
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
	 .‫רבה‬ ‫תודה‬
ConfidenPal	–	Oracle	Internal/Restricted/Highly	Restricted	 48
Copyright	©	2017,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|	
Resources	
•  JAX-RS	specificaPon	
– hsps://github.com/jax-rs/api	
•  Jersey	–		Asynchronous	Services	and	Clients	
– hsps://jersey.java.net/documentaPon/latest/async.html#d0e8611	
– hsps://github.com/jersey/jersey/tree/master/examples/rx-client-webapp	
•  ComplePonStage	
– hsps://docs.oracle.com/javase/8/docs/api/java/uPl/concurrent/ComplePonStage.html	
•  Java	EE	Tutorial	
– hsps://docs.oracle.com/javaee/7/tutorial/	
49
REST in an Async World
Ad

More Related Content

What's hot (20)

TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8
Mark Swarbrick
 
Rootconf admin101
Rootconf admin101Rootconf admin101
Rootconf admin101
Ligaya Turmelle
 
TDC2018SP | Trilha Java Enterprise - O Java EE morreu? EE4J e so um plugin? E...
TDC2018SP | Trilha Java Enterprise - O Java EE morreu? EE4J e so um plugin? E...TDC2018SP | Trilha Java Enterprise - O Java EE morreu? EE4J e so um plugin? E...
TDC2018SP | Trilha Java Enterprise - O Java EE morreu? EE4J e so um plugin? E...
tdc-globalcode
 
Java @ Rio Meetup #1 - Java @ Oracle Cloud
Java @ Rio Meetup #1 - Java @ Oracle CloudJava @ Rio Meetup #1 - Java @ Oracle Cloud
Java @ Rio Meetup #1 - Java @ Oracle Cloud
Paulo Alberto Simoes ∴
 
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu...
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL  (2019.05.18) oracle-nosql pu...11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL  (2019.05.18) oracle-nosql pu...
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu...
Taewan Kim
 
JSON support in Java EE 8
JSON support in Java EE 8JSON support in Java EE 8
JSON support in Java EE 8
Lukas Jungmann
 
Performance in Spark 2.0, PDX Spark Meetup 8/18/16
Performance in Spark 2.0, PDX Spark Meetup 8/18/16Performance in Spark 2.0, PDX Spark Meetup 8/18/16
Performance in Spark 2.0, PDX Spark Meetup 8/18/16
pdx_spark
 
2018 Oracle Impact 발표자료: Oracle Enterprise AI
2018  Oracle Impact 발표자료: Oracle Enterprise AI2018  Oracle Impact 발표자료: Oracle Enterprise AI
2018 Oracle Impact 발표자료: Oracle Enterprise AI
Taewan Kim
 
Aneez Hasan_Resume
Aneez Hasan_ResumeAneez Hasan_Resume
Aneez Hasan_Resume
Aneez Hasan Mohamed Rafi
 
Jfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and ContainersJfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and Containers
Mika Rinne
 
MySQL Devops Webinar
MySQL Devops WebinarMySQL Devops Webinar
MySQL Devops Webinar
Frederic Descamps
 
Oracle databáze – Konsolidovaná Data Management Platforma
Oracle databáze – Konsolidovaná Data Management PlatformaOracle databáze – Konsolidovaná Data Management Platforma
Oracle databáze – Konsolidovaná Data Management Platforma
MarketingArrowECS_CZ
 
토드(Toad) 신제품 및 크로스 플랫폼 전략(1)
토드(Toad) 신제품 및 크로스 플랫폼 전략(1)토드(Toad) 신제품 및 크로스 플랫폼 전략(1)
토드(Toad) 신제품 및 크로스 플랫폼 전략(1)
mosaicnet
 
The Future of Java and You
The Future of Java and YouThe Future of Java and You
The Future of Java and You
Heather VanCura
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
Frederic Descamps
 
MySQL Innovation: from 5.7 to 8.0
MySQL Innovation:  from 5.7 to 8.0MySQL Innovation:  from 5.7 to 8.0
MySQL Innovation: from 5.7 to 8.0
Frederic Descamps
 
MySQL Community Meetup in China : Innovation driven by the Community
MySQL Community Meetup in China : Innovation driven by the CommunityMySQL Community Meetup in China : Innovation driven by the Community
MySQL Community Meetup in China : Innovation driven by the Community
Frederic Descamps
 
What's coming in Java EE 8
What's coming in Java EE 8What's coming in Java EE 8
What's coming in Java EE 8
David Delabassee
 
Cisco Connect Vancouver 2017 - Embedding IR into the DNA of the business
Cisco Connect Vancouver 2017 - Embedding IR into the DNA of the businessCisco Connect Vancouver 2017 - Embedding IR into the DNA of the business
Cisco Connect Vancouver 2017 - Embedding IR into the DNA of the business
Cisco Canada
 
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !
Frederic Descamps
 
TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8TLV - Whats new in MySQL 8
TLV - Whats new in MySQL 8
Mark Swarbrick
 
TDC2018SP | Trilha Java Enterprise - O Java EE morreu? EE4J e so um plugin? E...
TDC2018SP | Trilha Java Enterprise - O Java EE morreu? EE4J e so um plugin? E...TDC2018SP | Trilha Java Enterprise - O Java EE morreu? EE4J e so um plugin? E...
TDC2018SP | Trilha Java Enterprise - O Java EE morreu? EE4J e so um plugin? E...
tdc-globalcode
 
Java @ Rio Meetup #1 - Java @ Oracle Cloud
Java @ Rio Meetup #1 - Java @ Oracle CloudJava @ Rio Meetup #1 - Java @ Oracle Cloud
Java @ Rio Meetup #1 - Java @ Oracle Cloud
Paulo Alberto Simoes ∴
 
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu...
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL  (2019.05.18) oracle-nosql pu...11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL  (2019.05.18) oracle-nosql pu...
11회 Oracle Developer Meetup 발표 자료: Oracle NoSQL (2019.05.18) oracle-nosql pu...
Taewan Kim
 
JSON support in Java EE 8
JSON support in Java EE 8JSON support in Java EE 8
JSON support in Java EE 8
Lukas Jungmann
 
Performance in Spark 2.0, PDX Spark Meetup 8/18/16
Performance in Spark 2.0, PDX Spark Meetup 8/18/16Performance in Spark 2.0, PDX Spark Meetup 8/18/16
Performance in Spark 2.0, PDX Spark Meetup 8/18/16
pdx_spark
 
2018 Oracle Impact 발표자료: Oracle Enterprise AI
2018  Oracle Impact 발표자료: Oracle Enterprise AI2018  Oracle Impact 발표자료: Oracle Enterprise AI
2018 Oracle Impact 발표자료: Oracle Enterprise AI
Taewan Kim
 
Jfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and ContainersJfokus 2017 Oracle Dev Cloud and Containers
Jfokus 2017 Oracle Dev Cloud and Containers
Mika Rinne
 
Oracle databáze – Konsolidovaná Data Management Platforma
Oracle databáze – Konsolidovaná Data Management PlatformaOracle databáze – Konsolidovaná Data Management Platforma
Oracle databáze – Konsolidovaná Data Management Platforma
MarketingArrowECS_CZ
 
토드(Toad) 신제품 및 크로스 플랫폼 전략(1)
토드(Toad) 신제품 및 크로스 플랫폼 전략(1)토드(Toad) 신제품 및 크로스 플랫폼 전략(1)
토드(Toad) 신제품 및 크로스 플랫폼 전략(1)
mosaicnet
 
The Future of Java and You
The Future of Java and YouThe Future of Java and You
The Future of Java and You
Heather VanCura
 
Introduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB ClusterIntroduction to MySQL InnoDB Cluster
Introduction to MySQL InnoDB Cluster
Frederic Descamps
 
MySQL Innovation: from 5.7 to 8.0
MySQL Innovation:  from 5.7 to 8.0MySQL Innovation:  from 5.7 to 8.0
MySQL Innovation: from 5.7 to 8.0
Frederic Descamps
 
MySQL Community Meetup in China : Innovation driven by the Community
MySQL Community Meetup in China : Innovation driven by the CommunityMySQL Community Meetup in China : Innovation driven by the Community
MySQL Community Meetup in China : Innovation driven by the Community
Frederic Descamps
 
What's coming in Java EE 8
What's coming in Java EE 8What's coming in Java EE 8
What's coming in Java EE 8
David Delabassee
 
Cisco Connect Vancouver 2017 - Embedding IR into the DNA of the business
Cisco Connect Vancouver 2017 - Embedding IR into the DNA of the businessCisco Connect Vancouver 2017 - Embedding IR into the DNA of the business
Cisco Connect Vancouver 2017 - Embedding IR into the DNA of the business
Cisco Canada
 
DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !DataOps Barcelona - MySQL HA so easy... that's insane !
DataOps Barcelona - MySQL HA so easy... that's insane !
Frederic Descamps
 

Similar to REST in an Async World (20)

TDC2018SP | Trilha Arq Java - Crie arquiteturas escalaveis, multi-language e ...
TDC2018SP | Trilha Arq Java - Crie arquiteturas escalaveis, multi-language e ...TDC2018SP | Trilha Arq Java - Crie arquiteturas escalaveis, multi-language e ...
TDC2018SP | Trilha Arq Java - Crie arquiteturas escalaveis, multi-language e ...
tdc-globalcode
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
Mark Swarbrick
 
MySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQLMySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQL
Miguel Araújo
 
TDC2018 | Trilha Java - The quest to the Language Graal: One VM to rule them...
TDC2018 | Trilha Java -  The quest to the Language Graal: One VM to rule them...TDC2018 | Trilha Java -  The quest to the Language Graal: One VM to rule them...
TDC2018 | Trilha Java - The quest to the Language Graal: One VM to rule them...
tdc-globalcode
 
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
Logico
 
Migrating your infrastructure to OpenStack - Avi Miller, Oracle
Migrating your infrastructure to OpenStack - Avi Miller, OracleMigrating your infrastructure to OpenStack - Avi Miller, Oracle
Migrating your infrastructure to OpenStack - Avi Miller, Oracle
OpenStack
 
Building a Serverless State Service for the Cloud
Building a Serverless State Service for the CloudBuilding a Serverless State Service for the Cloud
Building a Serverless State Service for the Cloud
Edward Burns
 
MOUG17 Keynote: What's New from Oracle Database Development
MOUG17 Keynote: What's New from Oracle Database DevelopmentMOUG17 Keynote: What's New from Oracle Database Development
MOUG17 Keynote: What's New from Oracle Database Development
Monica Li
 
Data Mobility for the Oracle Database by JWilliams and RGonzalez
Data Mobility for the Oracle Database by JWilliams and RGonzalezData Mobility for the Oracle Database by JWilliams and RGonzalez
Data Mobility for the Oracle Database by JWilliams and RGonzalez
Markus Michalewicz
 
Trivadis TechEvent 2017 Leveraging the Oracle Cloud by Kris Bhanushali tech_e...
Trivadis TechEvent 2017 Leveraging the Oracle Cloud by Kris Bhanushali tech_e...Trivadis TechEvent 2017 Leveraging the Oracle Cloud by Kris Bhanushali tech_e...
Trivadis TechEvent 2017 Leveraging the Oracle Cloud by Kris Bhanushali tech_e...
Trivadis
 
Democratizing Serverless—The Open Source Fn Project - Serverless Summit
Democratizing Serverless—The Open Source Fn Project - Serverless SummitDemocratizing Serverless—The Open Source Fn Project - Serverless Summit
Democratizing Serverless—The Open Source Fn Project - Serverless Summit
CodeOps Technologies LLP
 
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RACNZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
Sandesh Rao
 
Building Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and ChatbotsBuilding Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and Chatbots
Oracle Developers
 
Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)
Logico
 
Time-series Analytics using Matrix Profile and SAX
Time-series Analytics using Matrix Profile and SAXTime-series Analytics using Matrix Profile and SAX
Time-series Analytics using Matrix Profile and SAX
SUPREET OBEROI
 
Modern Application Development for the Enterprise
Modern Application Development for the EnterpriseModern Application Development for the Enterprise
Modern Application Development for the Enterprise
Juarez Junior
 
JCP 20 Year Anniversary
JCP 20 Year AnniversaryJCP 20 Year Anniversary
JCP 20 Year Anniversary
Heather VanCura
 
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
Sandesh Rao
 
Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)
Logico
 
Harnessing the Power of Optimizer Hints
Harnessing the Power of Optimizer HintsHarnessing the Power of Optimizer Hints
Harnessing the Power of Optimizer Hints
Maria Colgan
 
TDC2018SP | Trilha Arq Java - Crie arquiteturas escalaveis, multi-language e ...
TDC2018SP | Trilha Arq Java - Crie arquiteturas escalaveis, multi-language e ...TDC2018SP | Trilha Arq Java - Crie arquiteturas escalaveis, multi-language e ...
TDC2018SP | Trilha Arq Java - Crie arquiteturas escalaveis, multi-language e ...
tdc-globalcode
 
Why MySQL High Availability Matters
Why MySQL High Availability MattersWhy MySQL High Availability Matters
Why MySQL High Availability Matters
Mark Swarbrick
 
MySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQLMySQL Shell - The DevOps Tool for MySQL
MySQL Shell - The DevOps Tool for MySQL
Miguel Araújo
 
TDC2018 | Trilha Java - The quest to the Language Graal: One VM to rule them...
TDC2018 | Trilha Java -  The quest to the Language Graal: One VM to rule them...TDC2018 | Trilha Java -  The quest to the Language Graal: One VM to rule them...
TDC2018 | Trilha Java - The quest to the Language Graal: One VM to rule them...
tdc-globalcode
 
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
CDI 2.0 (JSR 365) - Java Day Tokyo 2017 (English)
Logico
 
Migrating your infrastructure to OpenStack - Avi Miller, Oracle
Migrating your infrastructure to OpenStack - Avi Miller, OracleMigrating your infrastructure to OpenStack - Avi Miller, Oracle
Migrating your infrastructure to OpenStack - Avi Miller, Oracle
OpenStack
 
Building a Serverless State Service for the Cloud
Building a Serverless State Service for the CloudBuilding a Serverless State Service for the Cloud
Building a Serverless State Service for the Cloud
Edward Burns
 
MOUG17 Keynote: What's New from Oracle Database Development
MOUG17 Keynote: What's New from Oracle Database DevelopmentMOUG17 Keynote: What's New from Oracle Database Development
MOUG17 Keynote: What's New from Oracle Database Development
Monica Li
 
Data Mobility for the Oracle Database by JWilliams and RGonzalez
Data Mobility for the Oracle Database by JWilliams and RGonzalezData Mobility for the Oracle Database by JWilliams and RGonzalez
Data Mobility for the Oracle Database by JWilliams and RGonzalez
Markus Michalewicz
 
Trivadis TechEvent 2017 Leveraging the Oracle Cloud by Kris Bhanushali tech_e...
Trivadis TechEvent 2017 Leveraging the Oracle Cloud by Kris Bhanushali tech_e...Trivadis TechEvent 2017 Leveraging the Oracle Cloud by Kris Bhanushali tech_e...
Trivadis TechEvent 2017 Leveraging the Oracle Cloud by Kris Bhanushali tech_e...
Trivadis
 
Democratizing Serverless—The Open Source Fn Project - Serverless Summit
Democratizing Serverless—The Open Source Fn Project - Serverless SummitDemocratizing Serverless—The Open Source Fn Project - Serverless Summit
Democratizing Serverless—The Open Source Fn Project - Serverless Summit
CodeOps Technologies LLP
 
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RACNZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
NZOUG-GroundBreakers-2018 - Troubleshooting and Diagnosing 18c RAC
Sandesh Rao
 
Building Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and ChatbotsBuilding Modern Applications Using APIs, Microservices and Chatbots
Building Modern Applications Using APIs, Microservices and Chatbots
Oracle Developers
 
Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)Polyglot on the JVM with Graal (English)
Polyglot on the JVM with Graal (English)
Logico
 
Time-series Analytics using Matrix Profile and SAX
Time-series Analytics using Matrix Profile and SAXTime-series Analytics using Matrix Profile and SAX
Time-series Analytics using Matrix Profile and SAX
SUPREET OBEROI
 
Modern Application Development for the Enterprise
Modern Application Development for the EnterpriseModern Application Development for the Enterprise
Modern Application Development for the Enterprise
Juarez Junior
 
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
AIOUG : OTNYathra - Troubleshooting and Diagnosing Oracle Database 12.2 and O...
Sandesh Rao
 
Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)Polyglot on the JVM with Graal (Japanese)
Polyglot on the JVM with Graal (Japanese)
Logico
 
Harnessing the Power of Optimizer Hints
Harnessing the Power of Optimizer HintsHarnessing the Power of Optimizer Hints
Harnessing the Power of Optimizer Hints
Maria Colgan
 
Ad

More from David Delabassee (20)

JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
David Delabassee
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
David Delabassee
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
David Delabassee
 
Randstad Docker meetup - Serverless
Randstad Docker meetup - ServerlessRandstad Docker meetup - Serverless
Randstad Docker meetup - Serverless
David Delabassee
 
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
David Delabassee
 
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin
David Delabassee
 
HTTP/2 comes to Java
HTTP/2 comes to JavaHTTP/2 comes to Java
HTTP/2 comes to Java
David Delabassee
 
Java EE 8 - Work in progress
Java EE 8 - Work in progressJava EE 8 - Work in progress
Java EE 8 - Work in progress
David Delabassee
 
HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)
David Delabassee
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
David Delabassee
 
Java EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web frontJava EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web front
David Delabassee
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
David Delabassee
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
David Delabassee
 
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
 
Avatar 2.0
Avatar 2.0Avatar 2.0
Avatar 2.0
David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshotJava EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
 
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouHTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
David Delabassee
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
David Delabassee
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
David Delabassee
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
David Delabassee
 
Randstad Docker meetup - Serverless
Randstad Docker meetup - ServerlessRandstad Docker meetup - Serverless
Randstad Docker meetup - Serverless
David Delabassee
 
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
David Delabassee
 
Java EE 8 - Work in progress
Java EE 8 - Work in progressJava EE 8 - Work in progress
Java EE 8 - Work in progress
David Delabassee
 
HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)HTTP/2 comes to Java (Dec. 2015 version)
HTTP/2 comes to Java (Dec. 2015 version)
David Delabassee
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
David Delabassee
 
Java EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web frontJava EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web front
David Delabassee
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshotJava EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
David Delabassee
 
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouHTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
David Delabassee
 
Ad

Recently uploaded (20)

Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 
Top 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docxTop 10 Client Portal Software Solutions for 2025.docx
Top 10 Client Portal Software Solutions for 2025.docx
Portli
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025Adobe After Effects Crack FREE FRESH version 2025
Adobe After Effects Crack FREE FRESH version 2025
kashifyounis067
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...Exploring Code Comprehension  in Scientific Programming:  Preliminary Insight...
Exploring Code Comprehension in Scientific Programming: Preliminary Insight...
University of Hawai‘i at Mānoa
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
F-Secure Freedome VPN 2025 Crack Plus Activation  New VersionF-Secure Freedome VPN 2025 Crack Plus Activation  New Version
F-Secure Freedome VPN 2025 Crack Plus Activation New Version
saimabibi60507
 
Douwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License codeDouwan Crack 2025 new verson+ License code
Douwan Crack 2025 new verson+ License code
aneelaramzan63
 
How can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptxHow can one start with crypto wallet development.pptx
How can one start with crypto wallet development.pptx
laravinson24
 
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AIScaling GraphRAG:  Efficient Knowledge Retrieval for Enterprise AI
Scaling GraphRAG: Efficient Knowledge Retrieval for Enterprise AI
danshalev
 
Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025Adobe Master Collection CC Crack Advance Version 2025
Adobe Master Collection CC Crack Advance Version 2025
kashifyounis067
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Landscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature ReviewLandscape of Requirements Engineering for/by AI through Literature Review
Landscape of Requirements Engineering for/by AI through Literature Review
Hironori Washizaki
 
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
How Valletta helped healthcare SaaS to transform QA and compliance to grow wi...
Egor Kaleynik
 
The Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdfThe Significance of Hardware in Information Systems.pdf
The Significance of Hardware in Information Systems.pdf
drewplanas10
 
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRYLEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
LEARN SEO AND INCREASE YOUR KNOWLDGE IN SOFTWARE INDUSTRY
NidaFarooq10
 

REST in an Async World