Go-quickstart
Binnen een paar minuten evalueert je Go-service feature flags in-process — geen netwerkstap per controle, geen latentie in je verzoekpad, één poll die elk verzoek bedient dat je proces afhandelt.
Nul runtime-dependencies: het require-blok van de SDK is leeg, en blijft dat.
1. Installeren
Section titled “1. Installeren”De SDK is pre-release en zijn repository is nog niet publiek. Heeft je team toegang gekregen, dan is het modulepad hieronder waar hij leeft.
go get github.com/FortressFlag/FortressFlag_SDK_go2. De serversleutel — een echt geheim
Section titled “2. De serversleutel — een echt geheim”Deze SDK gebruikt een serversleutel (ffs_…), en die is het tegenovergestelde van de
clientsleutels die de mobiele en web-SDK’s meesturen: hij kan je volledige ruleset
downloaden, targetingregels inbegrepen. Behandel hem precies als een databasewachtwoord —
een omgevingsvariabele of een secret manager, nooit code, nooit een repository, nooit een
log. De twee sleutelklassen, naast elkaar.
3. Start de client
Section titled “3. Start de 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 { // De ene plek waar de SDK kan fouten: een misvormde configuratie, // voordat er iets serveert. panic(err) } defer client.Close()
startCtx, cancel := context.WithTimeout(context.Background(), 15*time.Second) client.Start(startCtx) // blokkeert tot de eerste ruleset binnenkomt (of de context eindigt) cancel()
// ... je service draait; flagcontroles zijn nu functieaanroepen in het geheugen.}Start geeft nooit een fatale fout terug — kan de eerste fetch niet op tijd landen, dan
blijft de client het op de achtergrond proberen en krijgen je aanroepers intussen hun
standaarden.
4. Evalueer een flag
Section titled “4. Evalueer een flag”enabled := client.Bool("new-checkout", fortressflag.Context{ Key: "user-42", // je stabiele contextsleutel: een gebruikers-id, een sessie-id — jouw keuze Tags: map[string]string{"cohort": "beta"},}, false) // de fallback als de flag onbekend is of er nooit iets is opgehaaldclient.String en client.Number werken op dezelfde manier. De context-Key is waar
percentage-rollouts op bucketten — geef consequent dezelfde identifier mee en elke
gebruiker krijgt een stabiel cohort. Het zijn jouw gegevens: de SDK valideert, bewaart of
logt ze nooit.
Dat is het — je service evalueert flags lokaal. Een dashboardwijziging bereikt elk proces binnen ongeveer een minuut.
Evaluatie faalt nooit
Section titled “Evaluatie faalt nooit”Bool, String en Number geven altijd antwoord en panicken nooit — een flagprobleem mag
nooit je service neerhalen. Een herstart proces serveert je fallbacks van de aanroepplek
tot zijn eerste fetch landt (of zet CachePath in de configuratie om de laatste ruleset
naar een bestand naar keuze te bewaren, en herstarts hervatten er onmiddellijk uit). Zelfs
een ingetrokken sleutel breekt niets: de SDK blijft evalueren met de laatst gedownloade
ruleset tot je hem een nieuwe sleutel geeft.
Waar nu heen?
Section titled “Waar nu heen?”- Hoe flags je app bereiken — het server plane, uitgelegd
- Sleutels — munt, roteer en trek
ffs_-sleutels in - Targeting — de regels die je service nu evalueert