← Alle Artikel
ArchitekturTech

Serverless: API ohne Server-Management

Borzsport Redaktion · Datenanalyse & Technologie11. März 20267 Min. Lesezeit

Das Modell

Serverless bedeutet nicht “kein Server”, sondern “kein Server-Management”. Vercel kümmert sich um Provisioning, Scaling, Maintenance. Du schreibst nur die Funktion.

Borzsport-Architektur

api/fighters.js  → /api/fighters   (25s timeout)
api/gyms.js      → /api/gyms       (10s timeout)
api/analytics.js → /api/analytics  (30s timeout)
api/events.js    → /api/events     (15s timeout)
api/landing.js   → /api/landing    (10s timeout)

Sub-Routing per Query-Parameter: /api/fighters?id=42&action=summary

Shared Modules

  1. _supabase.js — Datenbankverbindung (Service Role Key)
  2. _cors.js — CORS-Whitelist + Rate Limiting + API-Key-Check
  3. _helpers.js — parseRecord(), parseFights() — Record-String zu Objekt
  4. _events.js — Audit-Logging für alle Write-Operations

Unterstrich-Präfix = kein eigener Endpoint. Vercel exponiert sie nicht.

Cold Starts

Beim ersten Request nach Inaktivität: Runtime muss initialisiert werden (100–500ms). Borzsport mitigiert das mit aggressivem HTTP Caching (stale-while-revalidate).

Cold Start vs. Warm vs. Cached

Simuliere die drei Request-Typen und sieh, wie sich die Latenz zusammensetzt:

INTERAKTIV

Cold Start Simulator

Vergleiche Cold Start, Warm Start und CDN-Cache — sieh wie sich die Request-Latenz verändert.

440ms
Total Latenz
⚠️ Runtime Init + Module Load machen ~62% der Latenz aus — das ist Cold Start Overhead.
DNS / TLSDNS-Lookup + TLS-Handshake zum CDN
45ms
Runtime InitNode.js Runtime wird gestartet (V8 isolate)
180ms
Module Loadrequire() — Imports, Supabase-Client init
95ms
HandlerEigentliche Datenbankquery + Response
120ms
TypLatenzWann?
🥶 Cold Start440ms+Nach >5 Min. Inaktivität
♻️ Warm140msFunktion bereits aktiv
⚡ CDN-Cache<10msstale-while-revalidate aktiv