Exemplo n.º 1
0
        public Task StartFlowAsync()
        {
            var sourceCancellationUnit = new JobCancellationUnit();

            // tap - start scrolling - out = es docs
            var sourceStream = _tap.StartFlowingToEnd(sourceCancellationUnit);

            // batcher/transformer - start batching - in = es docs, out = es doc batches
            var batchStream = _transformer.StartTransforming(sourceCancellationUnit, sourceStream);

            // TODO: throttler

            // sink - start indexing - in = es doc batches
            var destinationCancellationUnit = new JobCancellationUnit();

            return(_sink.StartDrainingAsync(destinationCancellationUnit, batchStream));
        }