Use coroutines and conflated channels to re-implement the debouncer. Some noteworthy links: * https://gist.github.com/k-kagurazaka/54441d6d5dfdb5668fd884008cd480a2 * https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/index.html