AsyncΒΆ
By default, Lacinia-Pedestal blocks the Pedestal request thread
while executing the query. The default
pedestal interceptor stack includes a synchronous query execution handler,
com.walmartlabs.lacinia.pedestal2/query-executor-handler
.
Lacinia also provides an asynchronous query execution handler:
com.walmartlabs.lacinia.pedestal2/async-query-executor-handler
.
When used in the interceptor stack, execution starts on a Pedestal request processing thread, but (at the discretion of individual field resolver functions) may continue on other threads.
Further, the return value from the asychronous handler is a channel, forcing Pedestal to switch to async mode.
Lacinia-Pedestal does not impose any restrictions on the number of requests it will attempt to process concurrently; normally, this is gated by the number of Pedestal request processing threads available.
When using the asynchronous query execution handler, you should provide application-specific interceptors to rate limit requests, or risk saturating your server.