Go-Quickstart
In ein paar Minuten wertet dein Go-Service Feature Flags in-process aus — kein Netzwerk-Hop pro Prüfung, keine Latenz in deinem Request-Pfad, eine Abfrage versorgt jeden Request, den dein Prozess bedient.
Null Laufzeitabhängigkeiten: Der require-Block des SDKs ist leer und bleibt es.
1. Installieren
Abschnitt betitelt „1. Installieren“Das SDK liegt in einem öffentlichen Repository auf GitHub — installiere es direkt von dort, auf das Release gepinnt:
go get github.com/FortressFlag/FortressFlag_SDK_go@v1.0.02. Der Server-Schlüssel — ein echtes Geheimnis
Abschnitt betitelt „2. Der Server-Schlüssel — ein echtes Geheimnis“Dieses SDK benutzt einen Server-Schlüssel (ffs_…), und der ist das Gegenteil der
Client-Schlüssel, die die Mobil- und Web-SDKs ausliefern: Er kann dein vollständiges Ruleset
herunterladen, Targeting-Regeln inklusive. Behandle ihn genau wie ein Datenbankpasswort —
eine Umgebungsvariable oder ein Secret-Manager, nie Code, nie ein Repository, nie ein Log.
Die zwei Schlüsselklassen, nebeneinander.
3. Starte den Client
Abschnitt betitelt „3. Starte den Client“package main
import ( "context" "os" "time"
fortressflag "github.com/FortressFlag/FortressFlag_SDK_go")
func main() { client, err := fortressflag.New(fortressflag.Configuration{ Key: os.Getenv("FF_SERVER_KEY"), }) if err != nil { // Die eine Stelle, an der das SDK einen Fehler liefern kann: eine fehlerhafte // Konfiguration, bevor irgendetwas ausliefert. panic(err) } defer client.Close()
startCtx, cancel := context.WithTimeout(context.Background(), 15*time.Second) client.Start(startCtx) // blockiert, bis das erste Ruleset ankommt (oder der Context endet) cancel()
// ... dein Service läuft; Flag-Prüfungen sind jetzt In-Memory-Funktionsaufrufe.}Start liefert nie einen fatalen Fehler — wenn der erste Abruf nicht rechtzeitig landet,
versucht der Client es im Hintergrund weiter, und deine Aufrufer bekommen inzwischen ihre
Standards.
4. Werte ein Flag aus
Abschnitt betitelt „4. Werte ein Flag aus“enabled := client.Bool("new-checkout", fortressflag.Context{ Key: "user-42", // dein stabiler Kontext-Key: eine User-ID, eine Session-ID — deine Wahl Tags: map[string]string{"cohort": "beta"},}, false) // der Fallback, wenn das Flag unbekannt ist oder nie etwas abgerufen wurdeclient.String und client.Number funktionieren genauso. Der Kontext-Key ist das, worauf
Prozent-Rollouts bucketen — übergib denselben Bezeichner konsistent, und jeder Nutzer bekommt
eine stabile Kohorte. Es sind deine Daten: Das SDK validiert, speichert oder loggt sie nie.
Das war’s — dein Service wertet Flags lokal aus. Eine Dashboard-Änderung erreicht jeden Prozess innerhalb von etwa einer Minute.
Die Auswertung schlägt nie fehl
Abschnitt betitelt „Die Auswertung schlägt nie fehl“Bool, String und Number antworten immer und panicken nie — ein Flag-Problem darf
deinen Service niemals lahmlegen. Ein neu gestarteter Prozess liefert deine Fallbacks von
der Aufrufstelle, bis sein erster Abruf landet (oder setz CachePath in der Konfiguration,
um das letzte Ruleset in einer Datei deiner Wahl zu persistieren, und Neustarts setzen sofort
daraus fort). Selbst ein widerrufener Schlüssel macht nichts kaputt: Das SDK wertet mit dem
zuletzt heruntergeladenen Ruleset weiter aus, bis du ihm einen neuen Schlüssel gibst.
Wie geht es weiter?
Abschnitt betitelt „Wie geht es weiter?“- Wie Flags deine App erreichen — die Server-Plane, erklärt
- Schlüssel —
ffs_-Schlüssel erstellen, rotieren und widerrufen - Targeting — die Regeln, die dein Service jetzt auswertet