Корутины упрощают асинхронный код, делая его похожим на синхронный, что улучшает читаемость и поддержку. Интегрированы в Kotlin. Позволяют легко отменять работу, используя структурированную конкурентность.
RxJava имеет более гибкий и мощный функционал для сложных преобразований потоков данных, но требует больше шаблонного кода и имеет крутую кривую обучения. Работает на Java, но активно используется в Kotlin. Управление жизненным циклом и отменой требует больше усилий.