MINOR: explain producer naming within Streams
Author: Matthias J. Sax
Reviewers: Bill Bejeck Damian Guy
Closes from mjsax/minor-producer-naming
@@ -925,6 +925,19 @@ $ java -cp path-to-app-fatjar.jar com.example.MyStreamsApp
If you want to view the changelog stream of the <code>KTable</code> then you could call <code>KTable.toStream().print()</code>.
</p>
+ <p> Metrics using exactly-once semantics: </p>
+ <p>
+ If exactly-once processing is enabled via the <code>processing.guarantees</code> parameter, internally Streams switches from a producer per thread to a producer per task runtime model.
+ In order to distinguish the different producers, the producer's <code>client.id</code> additionally encodes the task-ID for this case.
+ Because the producer's <code>client.id</code> is used to report JMX metrics, it might be required to update tools that receive those metrics.
+ </p>
+ <p> Producer's <code>client.id</code> naming schema: </p>
+ <ul>
+ <li> at-least-once (default): <code>[client.Id]-StreamThread-[sequence-number]</code> </li>
+ <li> exactly-once: <code>[client.Id]-StreamThread-[sequence-number]-[taskId]</code> </li>
+ </ul>
+ <p> <code>[client.Id]</code> is either set via Streams configuration parameter <code>client.id<code> or defaults to <code>[application.id]-[processId]</code> (<code>[processId]</code> is a random UUID). </p>
+
<h3><a id="streams_api_changes_01021" href="#streams_api_changes_01021">Notable changes in 0.10.2.1</a></h3>
<p>
