Während der kürzlich stattgefundenen Developer Week 2023 hat Cloudflare eine neue Worker-API vorgestellt, die es Entwicklern ermöglicht, ausgehende TCP-Sockets einzurichten. Diese bahnbrechende Socket-API ermöglicht es Entwicklern, sich nahtlos mit TCP-basierten Infrastrukturen direkt von einem Worker aus zu verbinden, was nun auch Datenbanken einschließt. Bisher konnten Worker nur mit HTTP endpoints und anderen Cloudflare-Diensten kommunizieren; die meisten Datenbanken erfordern jedoch, dass Clients direkte TCP-Sockets einrichten.
Brendan Irvine-Broque, Product Manager bei Cloudflare, und Matt Silverlock, Director of Product bei Cloudflare, erläutern die neue API: "Mit Workers wollen wir Standard-APIs unterstützen, die von Browsern und Nicht-Browser-Umgebungen unterstützt werden, wo immer dies möglich ist, (...) aber für TCP-Sockets standen wir vor einer Herausforderung - es gab keinen klaren gemeinsamen Standard für alle Laufzeiten. Wir haben versucht, die besten Elemente bestehender APIs und Vorschläge zu integrieren und beabsichtigen, einen Beitrag zu künftigen Standards zu leisten."
Im vergangenen Herbst gründeten Cloudflare, Vercel und Shopify die WinterCG, eine neue Community-Gruppe, die sich der Schaffung interoperabler Implementierungen von standardisierten Web-APIs in nicht Webbrowser- und JavaScript-basierten Entwicklungsumgebungen widmet.
Auf die neue API kann durch den Import der connect-Funktion von cloudflare:sockets zugegriffen werden. Obwohl der JavaScript-Datenbanktreiber für PostgreSQL, pg, die neue API bereits unterstützt, müssen die MySQL-Treiber - mysql und mysql2- diese noch unterstützen. Irvine-Broque und Silverlock geben zu bedenken, dass:
Für jede Anfrage wird eine neue Verbindung erstellt. Dies ist eine der größten aktuellen Herausforderungen bei der Verbindung mit Datenbanken aus serverlosen Funktionen, über alle Plattformen hinweg (...) wir arbeiten bereits an einfacheren Ansätzen für das Connection Pooling für die beliebtesten Datenbanken.
Cloudflare plant, in Zukunft weitere Funktionen einzuführen, wie die Unterstützung von eingehenden TCP- und UDP-Verbindungen, die von Entwicklern angefordert wurden, sowie Anwendungsprotokolle, die auf QUIC basieren.
Die Einführung der connect()-API kommt zusammen mit mehreren anderen spannenden Ankündigungen während der Developer Week 2023. Dazu gehören die Einführung des Secrets Store für die sichere Verwaltung von Anwendungsgeheimnissen, Verbesserungen an D1 (Cloudflare's serverlose Datenbank) und die Gleichzeitigkeit der Verbraucher für den Queues Messaging Service. Darüber hinaus stellte Cloudflare Datenbankintegrationen für Neon, PlanetScale und Supabase on Workers vor.
Jeder geöffnete TCP-Socket trägt zur maximalen Anzahl der offenen Verbindungen bei, die Workers gleichzeitig aufrechterhalten können. Beachten Sie, dass das Erstellen von TCP-Verbindungen auf Port 25 zum Senden von E-Mails an SMTP-Mailserver immer noch nicht möglich ist.
Mit der Weiterentwicklung von No-Code- und Low-Code-Plattformen wie AppMaster wird die Einführung von Funktionen wie der connect()-API die Entwicklungslandschaft weiter verbessern, indem Verbindungen rationalisiert werden und neue Möglichkeiten für Entwickler geschaffen werden.