code: public static <Message, Event extends AggregateEvent<Event>> Topic<Message> taggedStreamWithOffset(
              PSequence<AggregateEventTag<Event>> tags,
              BiFunction<AggregateEventTag<Event>, Offset, Source<Pair<Message, Offset>, ?>> eventStream) {
          return new TaggedOffsetTopicProducer<>(tags, eventStream);
      }
docs: Publish a stream that is sharded across many tags.
  
  The tags will be distributed around the cluster, ensuring that at most one event stream for each tag is
  being published at a particular time.
  
  This producer will ensure every element from each tags stream will be published at least once (usually only
  once), using the message offsets to track where in the stream the producer is up to publishing.
  
  @param tags The tags to publish.
  @param eventStream A function event stream for a given shard given the last offset that was published.
  @return The topic producer.