Я ищу для оптимизации конечной точки GraphQL, работающей на graphql-java
и graphql-java-tools
.
У меня есть следующая схема:
{
product(id: String) {
id
title
offer {
price
}
}
}
id
и title
поступают от службы A, цена поступает от службы B.
Прямо сейчас у меня есть GraphQLQueryResolver
, который возвращает CompletableFuture<ProductResponse>
, где ProductResponse
содержит id
и title
, и у меня есть еще один GraphQLResolver<ProductResponse>
с методом offer(ProductResponse productResponse)
, который возвращает CompletableFuture<OfferResponse>
.
Однако это означает, что мне нужно ждать, пока служба A вернет ProductResponse
, чтобы начать запрашивать службу B для OfferResponse
. Обе службы нуждаются только в идентификаторе в качестве входных данных и, следовательно, могут выполняться параллельно.
Есть ли способ выполнить оба вызова службы параллельно, не меняя схему?