Routing
Routing — Überblick
Outgate wählt einen Upstream aus einem einzigen Gateway-Endpoint.
Routing ist die Art, wie Outgate entscheidet, wohin jede Anfrage gehen soll, sobald sie das Gateway erreicht.
Statt dass Ihre Anwendung einen bestimmten Provider auswählt, schicken Sie jede Anfrage an einen einzigen Endpoint. Outgate bewertet die Anfrage und leitet sie auf Basis der von Ihnen definierten Routing-Logik an den passendsten Upstream weiter.
Das hält Ihre Clients schlank und gibt Ihnen Verlässlichkeit, Kosten und Performance an einem Ort in die Hand.
Wie Routing funktioniert
Ein Router ist ein Provider, der auf andere Provider zeigt.
Ein Router verhält sich wie ein Provider — nur dass er nicht auf einen einzelnen Upstream zeigt, sondern auf ein Set von Providern.
Wenn eine Anfrage das Gateway erreicht, bewertet der Router sie und wählt einen Upstream aus. Diese Entscheidung passiert inline als Teil der Anfrage. Es gibt keinen separaten Dienst und keine verzögerte Verarbeitung. Jede Anfrage wird sofort und konsistent behandelt.
Aus Sicht Ihrer Anwendung ändert sich nichts. Sie rufen weiterhin einen Endpoint auf. Aus Sicht des Systems wird jede Anfrage zu einer Entscheidung darüber, wohin sie gehen soll.
Router-Typen
Outgate bietet drei Routing-Strategien.
Outgate bietet drei Routing-Strategien. Jede ist eine andere Art, die Upstream-Auswahl zu treffen.
| Strategie | Wie die Auswahl funktioniert | Worauf sie optimiert |
|---|---|---|
| Failover | Probiert Provider der Reihe nach, bis einer erfolgreich ist. | Verfügbarkeit |
| Weighted | Verteilt Anfragen anhand zugewiesener Gewichte. | Steuerung und Experimente |
| Smart | Wählt einen Provider pro Anfrage anhand von Scoring. | Optimierung über Qualität, Geschwindigkeit und Kosten |
Die Strategien teilen sich dasselbe Grundmodell. Der einzige Unterschied liegt darin, wie der Upstream gewählt wird.
Failover-Routing
Anfragen erfolgreich halten, wenn Provider ausfallen.
Failover-Routing konzentriert sich darauf, Anfragen erfolgreich zu halten.
Sie definieren eine geordnete Liste von Providern. Der Router schickt die Anfrage an den ersten Provider. Schlägt diese Anfrage fehl, geht der Router automatisch zum nächsten — und so weiter, bis ein Provider erfolgreich ist oder alle Optionen ausgeschöpft sind.
Daraus ergibt sich eine natürliche Primary-/Fallback-Struktur. Sie können steuern, wie schnell Failover passiert, indem Sie Timeouts anpassen — und das Verhalten zwischen Providern ändern, indem Sie Modelle für Fallback-Pfade überschreiben.
Failover-Routing ist meist der erste Schritt jenseits eines einzelnen Providers. Sie fangen damit Ausfälle und Rate-Limits ab, ohne Anwendungslogik zu ändern.
Weighted-Routing
Traffic über relative Gewichte verteilen.
Weighted-Routing konzentriert sich auf die Verteilung.
Jedem Provider wird ein Gewicht zugewiesen, und Anfragen werden entsprechend dieser Verhältnisse über die Provider verteilt. Mit der Zeit spiegelt der beobachtete Traffic die konfigurierten Gewichte wider.
Das ist besonders nützlich, wenn Sie ein neues Modell einführen. Sie können zunächst einen kleinen Anteil dorthin schicken, das Verhalten beobachten und den Anteil schrittweise erhöhen.
Weighted-Routing macht keine Retries über Provider hinweg. Jede Anfrage wird von einem einzigen Upstream behandelt — das hält Latenz vorhersagbar und macht Experimente leichter nachvollziehbar.
Smart-Routing
Den Provider dynamisch pro Anfrage wählen.
Smart-Routing konzentriert sich darauf, die beste Option für jede Anfrage auszuwählen.
Statt fester Regeln bewertet der Router verfügbare Modelle und wählt dasjenige, das am besten zur Anfrage passt. Diese Entscheidung berücksichtigt Faktoren wie Qualität, Geschwindigkeit und Kosten — sowie Ihre konfigurierten Präferenzen.
Jeder Upstream steuert ein oder mehrere Kandidaten-Modelle bei. Diese Kandidaten werden zur Laufzeit bewertet, und die Auswahl kann von Anfrage zu Anfrage variieren.
Smart-Routing greift auch mit Guardrails ineinander. Anfragen können vor dem Routing auf Sicherheit geprüft werden, und zusätzliche Anpassungen wie Tool-Filterung lassen sich im selben Entscheidungsschritt anwenden.
Routing-Strategie entwerfen
Klein anfangen und schrittweise weiter ausbauen.
Die meisten Teams übernehmen Routing schrittweise.
- Mit einem einzelnen Provider starten, um die Integration zu validieren.
- Failover einführen, um die Verfügbarkeit zu verbessern.
- Weighted-Routing nutzen, um Traffic zu testen und zu verschieben.
- Auf Smart-Routing wechseln, sobald Optimierung wichtig wird.
Wichtig ist: Routing entwickelt sich weiter, ohne dass Ihre Anwendung sich ändern muss. Sie rufen weiter denselben Endpoint auf, während das Verhalten dahinter immer ausgefeilter wird.
Arbeit mit Upstreams
Jeden verbundenen Provider unabhängig konfigurieren.
Ein Router wird durch die Provider definiert, mit denen er verbunden ist. Jeder Upstream kann eine eigene Konfiguration haben, die das Verhalten von Anfragen beeinflusst.
Sie könnten ein hochwertiges Modell als Primary-Provider nutzen und bei Bedarf auf ein schnelleres oder günstigeres Modell ausweichen. Sie könnten unterschiedliche Gewichte je nach Kostenrahmen oder erwarteter Latenz vergeben.
Im Smart-Routing beeinflussen diese Upstream-Settings, wie Kandidaten bewertet werden. Präferenzen lenken die Auswahl, aber die finale Entscheidung bleibt dynamisch.
Limits und Steuerung
Nutzungslimits durchsetzen, bevor Anfragen nach upstream gehen.
Routing geschieht im Gateway — und das ist der natürliche Ort, um Limits durchzusetzen.
Sie können einem Router Request- oder Token-Limits zuweisen, sodass die Nutzung innerhalb definierter Grenzen bleibt, bevor Anfragen Upstream-Provider erreichen. Das vereinfacht Kostensteuerung und zentralisiert die Durchsetzung über alle Anwendungen, die den Router nutzen.
Betriebsaspekte
Routing-Entscheidungen liegen im Anfragepfad — also bewusst tunen.
Weil Routing-Entscheidungen Teil des Anfragepfads sind, beeinflussen sie die Performance direkt.
Kurze Failover-Ketten liefern in der Regel bessere Latenz, weil jeder zusätzliche Versuch im Fehlerfall Zeit kostet. Die Timeout-Konfiguration spielt eine wichtige Rolle dabei, wie schnell das System auf ungesunde Provider reagiert.
Weighted-Routing sollte gezielt eingesetzt werden — besonders, wenn Sie neue Modelle in die Produktion bringen. Observability ist essenziell, je komplexer das Routing wird, weil sie zeigt, welche Provider genutzt werden und wie sie über die Zeit performen.
Aktuelle Einschränkungen
Router sind bewusst einfach und vorhersehbar.
Router sind so entworfen, dass sie vorhersehbar und leicht nachvollziehbar bleiben — manche fortgeschrittenen Kompositionen werden deshalb noch nicht unterstützt.
Router können aktuell nicht als Upstream für andere Router dienen, sodass verschachteltes Routing nicht verfügbar ist. Weighted-Routing enthält kein automatisches Fallback-Verhalten, und Smart-Routing ist auf vorhandene Modell-Metadaten angewiesen, um wirksame Entscheidungen zu treffen.
Alles zusammengeführt
Routing macht die Provider-Wahl zur Plattform-Sache, nicht zur Anwendungslogik.
Sobald ein Router eingerichtet ist, wird der Betrieb Ihres Systems einfacher.
Ihre Anwendung schickt jede Anfrage an denselben Endpoint. Das Gateway bewertet die Anfrage, wählt einen Upstream und liefert die Antwort zurück. Routing wird zu einer Eigenschaft der Plattform — und nicht etwas, das jede Anwendung selbst implementieren müsste.
Das erlaubt Teams, schneller voranzukommen und gleichzeitig die Kontrolle darüber zu behalten, wie Anfragen gehandhabt werden.