Imagine you have an unbounded stream of events. Each has a unique id. Now you want to throttle the stream based on id, ie. each id should not appear more often than X minutes.
// Throttle each id in one minute.
groupBy((e: Event) => e.getId()),
flatMap(group => group.pipe(throttleTime(60 * 1000))),
//Do your stuff
Too much to write.