internal void AddSourceOperator<K, V>(string topic, string nameNode, ConsumedInternal<K, V> consumed)
        {
            if (string.IsNullOrEmpty(topic))
                throw new TopologyException("You must provide at least one topic");

            if (nodeFactories.ContainsKey(nameNode))
                throw new TopologyException($"Source processor {nameNode} is already added.");

            if(sourcesTopics.Contains(topic)) {
                throw new TopologyException($"Topic {topic} has already been registered by another source.");
            }

            sourcesTopics.Add(topic);
            nodeFactories.Add(nameNode,
                new SourceNodeFactory<K, V>(nameNode, topic, consumed.TimestampExtractor, consumed.KeySerdes, consumed.ValueSerdes));
            nodeGrouper.Add(nameNode);
            nodeGroups = null;
        }