На прошедшей недавно Неделе разработчиков 2023 компания Cloudflare представила новый API Worker, позволяющий разработчикам создавать исходящие TCP-сокеты. Этот революционный API сокетов позволяет разработчикам легко подключаться к инфраструктурам на базе TCP непосредственно из Worker, в число которых теперь входят и базы данных. До сих пор Workers могли взаимодействовать только с HTTP endpoints и другими сервисами Cloudflare; однако большинство баз данных требуют от клиентов создания прямых TCP-сокетов.
Брендан Ирвин-Брок, менеджер по продуктам Cloudflare, и Мэтт Сильверлок, директор по продуктам Cloudflare, рассказали о новом API: "В Workers мы стремимся поддерживать стандартные API, которые по возможности поддерживаются в браузерах и небраузерных средах, (...) но в случае с TCP-сокетами мы столкнулись с проблемой - не было четкого общего стандарта для всех рабочих сред. Мы постарались включить лучшие элементы существующих API и предложений и намерены внести свой вклад в будущие стандарты".
Осенью прошлого года Cloudflare, Vercel и Shopify создали WinterCG, новую группу сообщества, занимающуюся созданием совместимых реализаций стандартизированных веб-интерфейсов API в средах разработки, не связанных с веб-браузерами и JavaScript.
Доступ к последнему API можно получить, импортировав функцию connect из cloudflare:sockets. Хотя драйвер базы данных JavaScript для PostgreSQL, pg, уже поддерживает новый API, драйверы MySQL - mysql и mysql2 -еще не поддерживают его. Ирвин-Брок и Силверлок предупреждают, что:
Для каждого запроса создается новое соединение. Это одна из самых больших текущих проблем подключения к базам данных из бессерверных функций на всех платформах (...) мы уже работаем над более простыми подходами к пулу соединений для самых популярных баз данных".
В будущем Cloudflare планирует развернуть дополнительные функции, такие как поддержка входящих TCP- и UDP-соединений, о которых просили разработчики, а также прикладных протоколов на основе QUIC.
Внедрение API connect() происходит одновременно с несколькими другими интересными объявлениями на Неделе разработчиков 2023. Среди них - запуск Secrets Store для безопасного управления секретами приложений, усовершенствования D1 (бессерверной базы данных Cloudflare) и потребительский параллелизм для службы обмена сообщениями Queues. Кроме того, Cloudflare представила интеграцию баз данных для Neon, PlanetScale и Supabase on Workers.
Каждый открытый TCP-сокет вносит свой вклад в максимальное количество открытых соединений, которые Workers может поддерживать одновременно. Обратите внимание, что создание TCP-соединений на порту 25 для отправки писем на почтовые серверы SMTP по-прежнему невозможно.
Поскольку платформы no-code и low-code, такие как AppMaster, продолжают развиваться, внедрение таких функций, как API connect(), еще больше расширит возможности разработки за счет упрощения соединений и создания новых возможностей для разработчиков.