RxJS is bonkers!
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. fromEvent(emitter, 'tick').pipe( groupBy((e: Event) => e.getId()), flatMap(group => group.pipe(throttleTime(60 * 1000))), ).subscribe( //Do your stuff ); Without RxJS:
Too much to write.