public synchronized Topology addSource(final String name,
                                           final String... topics) {
        internalTopologyBuilder.addSource(null, name, null, null, null, topics);
        return this;
    }
Add a new source that consumes the named topics and forward the records to child processor and/or sink nodes.
The source will use the {@link StreamsConfig#DEFAULT_KEY_SERDE_CLASS_CONFIG default key deserializer} and
{@link StreamsConfig#DEFAULT_VALUE_SERDE_CLASS_CONFIG default value deserializer} specified in the
{@link StreamsConfig stream configuration}.
The default {@link TimestampExtractor} as specified in the {@link StreamsConfig config} is used.

@param name the unique name of the source used to reference this node when
{@link #addProcessor(String, ProcessorSupplier, String...) adding processor children}.
@param topics the name of one or more Kafka topics that this source is to consume
@return itself
@throws TopologyException if processor is already added or if topics have already been registered by another source
streams/src/main/java/org/apache/kafka/streams/Topology.java