先日開催されたDeveloper Week 2023において、Cloudflareは、開発者がアウトバウンドTCPソケットを確立できるようにする新しいWorker APIを公開しました。この画期的なソケットAPIにより、開発者はWorkerからTCPベースのインフラに直接シームレスに接続できるようになり、これにはデータベースも含まれるようになりました。これまでWorkerは、HTTPendpoints やその他のCloudflareサービスとしか通信できませんでしたが、ほとんどのデータベースでは、クライアントがTCPソケットを直接確立する必要があります。
CloudflareのプロダクトマネージャーであるBrendan Irvine-BroqueとCloudflareのプロダクトディレクターであるMatt Silverlockは、新しいAPIについて次のように説明しています。「Workersでは、ブラウザやブラウザ以外の環境でもサポートされる標準APIのサポートを可能な限り目指していますが、TCPソケットについては、ランタイム間で明確に共有できる標準がないという難題に直面していました。私たちは、既存のAPIや提案の最良の要素を取り入れるよう努め、将来の標準化に貢献するつもりです。"
前年の秋、Cloudflare、Vercel、Shopifyは、非WebブラウザやJavaScriptベースの開発環境において、標準化されたWeb APIの相互運用可能な実装を作成することを目的とした新しいコミュニティグループ、WinterCGを設立しました。
最新のAPIは、cloudflare:sockets 。PostgreSQL用のJavaScriptデータベースドライバであるpgはすでに新しいAPIをサポートしているが、MySQLドライバのmysqlと mysql2がまだサポートしていない。Irvine-BroqueとSilverlockは次のように注意しています:
リクエストのたびに新しい接続が作成されます。これは、あらゆるプラットフォームにおいて、サーバーレス機能からデータベースに接続する際の現在の最大の課題の1つです(中略)私たちはすでに、最も人気のあるデータベースに対する接続プーリングのよりシンプルなアプローチに取り組んでいます」。
Cloudflareは、QUICに基づくアプリケーションプロトコルとともに、開発者から要望のあったインバウンドTCPおよびUDP接続のサポートなど、将来的に追加機能を展開することを見込んでいます。
connect() APIの導入は、Developer Week 2023で発表された他のいくつかのエキサイティングな発表と同時に行われました。これには、アプリケーションの秘密を安全に管理するためのSecrets Storeの立ち上げ、D1(Cloudflareのサーバーレスデータベース)の機能強化、Queuesメッセージングサービスのコンシューマー同時実行が含まれます。さらに、CloudflareはNeon、PlanetScale、Supabase on Workers向けのデータベース統合を発表しました。
開いたTCPソケットはそれぞれ、Workersが同時に維持できるオープン接続の最大数に貢献します。なお、SMTPメールサーバーにメールを送信するためにポート25でTCP接続を作成することは、まだ不可能です。
AppMasterのようなノーコード、ローコードプラットフォームが進化を続ける中、connect() APIのような機能の導入は、接続の合理化と開発者の新しい機会の創出によって、開発環境をさらに後押しするでしょう。