private async Task <Result> ExecuteAsync(WorkerPlan plan, Uri source)
        {
            var input = new WorkerPublicInput
            {
                UnderlyingQuery = plan.UnderlyingQuery.ToString(),
                Order           = plan.Order.IsSome ? plan.Order.AsT0.ToString() : null,
                Limit           = plan.Limit.IsSome ? plan.Limit.AsT0.ToString() : null,

                DataLocation = source
            };

            var response = await _lambda.InvokeAsync(new InvokeRequest
            {
                FunctionName   = _workerFunctionName,
                InvocationType = InvocationType.RequestResponse,
                Payload        = JsonConvert.SerializeObject(input),
            }).ConfigureAwait(false);

            if (!string.IsNullOrEmpty(response.FunctionError))
            {
                throw new WorkerException(response.FunctionError);
            }

            using var payload = response.Payload;
            return(await PublicResult.DeserializeAsync(payload).ConfigureAwait(false));
        }
        public async Task <Stream> Handler(DistributorPublicInput input)
        {
            var queryInput = ConvertInput(input);

            var result = await _distributor.QueryAsync(queryInput).ConfigureAwait(false);

            return(PublicResult.Serialize(result));
        }