So, the cold observable will generate its own sequence for each subsribe (a new coroutine will be started for each subscriber), while hot observable will start coroutine as soon as you invoke the function and subscribers will see that values starting from the moment of time they subscribe.