Vercel Flags SDK startet bei Kaltstarts etwa siebenmal schneller und senkt Laufzeitkosten

Vercel hat sein Flags SDK aktualisiert, sodass es bei Kaltstarts schneller initialisiert. Laut Unternehmen sank die p75-Initialisierungszeit in internen Tests von über 70 ms auf 10 ms. Zudem hält das Usage-Reporting Funktionen nach dem Senden der Antwort nicht mehr am Laufen.
- Das Vercel Flags SDK lädt die gebündelte Flags-Datendatei jetzt sofort beim Erstellen des Clients.
- Jeder Funktionsaufruf enthält die aktuelle Revision der Datendatei, sodass für deren Prüfung keine Netzwerkanfrage nötig ist.
- In Vercels internen Tests sank die p75-Initialisierungszeit beim Kaltstart von über 70 ms auf 10 ms, also rund siebenmal schneller.
- Nutzungsereignisse gehen jetzt an die Vercel-Runtime, sodass das Reporting die Funktionsdauer nicht mehr verlängert.
- @flags-sdk/vercel auf 1.5.3 oder höher aktualisieren und neu deployen.
Zwei Änderungen hinter den schnelleren Kaltstarts
Laut Vercel beschleunigen zwei Änderungen die SDK-Initialisierung, wenn eine Funktion kalt startet. Erstens lädt und parst das SDK die Flags-Datendatei, die mit einem Deployment gebündelt ist, nun sofort beim Erstellen des Clients. Die Daten stehen damit bereit, bevor der Anwendungscode sein erstes Flag auswertet.
Zweitens enthält jeder Funktionsaufruf jetzt die aktuelle Revision der Datendatei. Anhand dieser Information kann das SDK prüfen, ob die gebündelte Datendatei aktuell ist, ohne eine Netzwerkanfrage zu stellen.
Der Wegfall dieser Netzwerkwartezeit sorgt für die Verbesserung. In internen Tests sank laut Vercel die p75-Initialisierungszeit des SDK beim Kaltstart von über 70 ms auf 10 ms, was das Unternehmen als rund siebenmal schneller beschreibt.
Flag-Abfragen nach der Initialisierung
Auch dazu, was nach dem Start des SDK passiert, nannte Vercel Zahlen. Nach der Initialisierung seien Flag-Abfragen praktisch verzögerungsfrei. Über kalte und warme Aufrufe hinweg liege die p99-Latenz einer Flag-Abfrage unter 1 ms.
Diese Werte stammen aus Vercels eigenen Tests und wurden nicht unabhängig überprüft. Die tatsächlichen Ergebnisse hängen davon ab, wie eine Anwendung Flags nutzt und wie oft ihre Funktionen kalt starten.
Usage-Reporting verlängert die Funktionsdauer nicht mehr
Die zweite Änderung betrifft die Art, wie das SDK die Nutzung meldet. Bisher verwendete es dafür waitUntil, wodurch Funktionen weiterliefen, obwohl die Antwort bereits gesendet war. Diese zusätzliche Zeit zählte zur Funktionsdauer.
Stattdessen übergibt das SDK Nutzungsereignisse jetzt an die Vercel-Runtime. Laut Vercel erhöht das Usage-Reporting dadurch die Funktionsdauer nicht mehr.
So gelangen Entwickler zum Update
Entwickler müssen @flags-sdk/vercel auf Version 1.5.3 oder höher aktualisieren und ihre Anwendung anschließend erneut deployen. Vercel nennt für das Update diesen Befehl:
- pnpm add @flags-sdk/vercel@latest
Da die Verbesserungen im SDK stecken, greifen sie erst, nachdem das Paket aktualisiert und die App neu deployt wurde. Teams, die Vercel Flags in Funktionen mit häufigen Kaltstarts einsetzen, dürften die kürzere Initialisierungszeit am ehesten bemerken. Weitere Details stehen in der Dokumentation des Flags SDK.


