Что это?
Кто еще не читал документацию — настоятельно рекомендую к ознакомлению.
Что пишет джетбрейнс:
Сопрограммы упрощают асинхронное программирование, оставив все осложнения внутри библиотек. Логика программы может быть выражена последовательно в сопрограммах, а базовая библиотека будет её реализовывать асинхронно для нас. Библиотека может обернуть соответствующие части кода пользователя в обратные вызовы (callbacks), подписывающиеся на соответствующие события, и диспетчировать исполнение на различные потоки (или даже на разные машины!). Код при этом останется столь же простой, как если бы исполнялся строго последовательно.
Если говорить простыми словами — это библиотека для синхронного \ асинхронного выполнения кода.
Зачем?
Потому что RxJava уже не в моде (шутка).
Во-первых, хотелось попробовать что-то новое, во-вторых, я наткнулся на статью — сравнение скорости работы корутин и других способов.