is an enhanced alternative to from GraphQL Java. Both have the ability to wrap a synchronous together with an , and return s that execute on the . also copies slf4j's Mapped Diagnostic Context to the background tasks, and restores the MDC when each task completes. When using Dropwizard, the executor should come from its environment. lives in the module. LiftwizardAsyncDataFetcher AsyncDataFetcher DataFetcher Executor CompleteableFuture Executor LiftwizardAsyncDataFetcher builder.dataFetcher( "fieldName", LiftwizardAsyncDataFetcher.async(dataFetcher, executor)); ExecutorService executorService = environment .lifecycle() .executorService("my-data-fetcher-%d") .maxThreads(maxThreads) .build(); LiftwizardAsyncDataFetcher liftwizard-graphql-data-fetcher-async <dependency> <groupId>io.liftwizard</groupId> <artifactId>liftwizard-graphql-data-fetcher-async</artifactId> </dependency>