Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Получается, sse вроде держит постоянное соединение с сервером, плюс еще api для передачи данных от клиента к серверу периодически дергает сервер. Не экономичнее ли (во всех смыслах) в этом случае весь обмен в обе стороны держать на каком-нибудь socket.io?
Да, как вариант, но в нашем случае API - это отдельный продукт для интеграции наших пользователей. Его используют не только обычные рекламодатели и исполнители, но и партнёры (агенства, например). Поэтому SPA использует OpenAPI для своей работы.
Кроме того, асинхронные уведомления добавляются по мере развития приложения. Первичен всё-таки API.
Когда API недостаточно: асинхронные уведомления в SPA