private void StartNode(Node node) { _log.LogInformation("Starting node {Uri}", node.Uri); var nodeBuffer = new NodeBuffer(node); _buffers.Add(nodeBuffer); _running.Add(Task.Factory.StartNew(async() => { await foreach (var message in nodeBuffer.GetMessages(_cancellationTokenSource.Token)) { await PublishAsync(nodeBuffer.Node, message); } }, TaskCreationOptions.LongRunning)); }