Залез поизучать всякие
технологии стриминга / процессинга, и наткнулся там на
YomoНе до конца понимаю что именно это за технология, кажется, что это framework + infra для запуска serverless функций, в которую вшит транспорт, роутер, деплой и среда запуска
Меня зацепило то, что они позволяют писать serverless функции на Go, Rust, C и даже Zig (уффф кайф), после чего
вы конвертируете их в WASM и движок Yomo запускает эти функции...
И вот я не понимаю: это гениально или тупо?
Что меня смущает: все эти языки компилируются в бинарники, которые можно запускать даже на условном тостере, вопрос в том зачем для этого WASM? Способно ли 1 WASM приложение вызывать функции из разных языков или под каждое придется раскрывать свое приложение? А что происходит с "рантаймом" самих этих языков, например, конкурентность, IO или GC, в случае go?
Теоритические плюсы:
+ WASM работает одинаково на любых платформах, а значит билдишь на любой и запускаешь на любой, да, это удобно
+ Если сравнивать с docker, то WASM образ намного меньше весит, намного быстрее запускается и намного меньше требует ресурсов
+ Можно настраивать политики доступов во внешнюю сренду (особенно удобно для PaaS вендоров)
Исходя из плюсов, могу предположить, что WASM – это может быть удобной технологией для построения serverless PaaS с конкретными ограничениями на конкретные задачи (например, ETL)
P.S.
С праздниками вас, мои замечательные качки и качессы 💪