Based on feedback from early users and personal experience attempting to explain it, the name trackStateByKey had two problem.
- "trackState" is a completely new term which really does not give any intuition on what the operation is
- the resultant data stream of objects returned by the function is called in docs as the "emitted" data for the lack of a better.
"mapWithState" makes sense because the API is like a mapping function like (Key, Value) => T with State as an additional parameter. The resultant data stream is "mapped data". So both problems are solved.