Блокирующий/неблокирующий
Синхронный (реактор)/асинхронный (проактор)
Архитектура framework на примере boost::asio
Особенности реализации callback
Причины разницы производительности асинхронного i/o на примере простого сервера в классическом и coroutines-режиме
Преимущества асинхронной работы и реализация со стороны операционной системы
Мотивация к переходу на coroutines
Преимущества по отношению к callback-программированию
Примеры co_await и сравнение с синхронным кодом