When grouping by high cardinality key it would be useful to close observable if no data is coming for a configured period, something like: GroubByWithinWindow(..., d time.Duration)
After d time close the observable, and any subscriber will be completed, if the key reappears a new group observable will be created.