Le piattaforme SaaS per la gestione dei feature flag eccellono nel fatturare cifre enterprise per semplici controlli booleani. Quando la fattura mensile raggiunge quattro cifre solo per valutare dei flag, è il momento di riprendere il controllo dell'infrastruttura.
L'Architettura: Motore Go + SQLite Integrato
FlagForge CLI è sviluppato come un singolo binario Go compilato per l'esecuzione senza dipendenze esterne. Integra SQLite in modalità WAL (Write-Ahead Logging), garantendo valutazioni dei flag sotto il millisecondo direttamente nella tua rete o come contenitore sidecar.
Integrazione con Microservizi Python
Non servono SDK pesanti dei vendor o complessi thread di sincronizzazione in background. Un semplice client Python che interroga il daemon di FlagForge offre valutazioni ultra-veloci con valori di fallback previsti in caso di errore.
import requests
from typing import Optional
class FlagForgeClient:
def __init__(self, host: str = "http://127.0.0.1:8080", timeout: float = 0.05):
self.host = host.rstrip("/")
self.timeout = timeout
def is_enabled(self, flag_key: str, user_id: Optional[str] = None, default: bool = False) -> bool:
try:
payload = {"user_id": user_id} if user_id else {}
resp = requests.post(
f"{self.host}/v1/evaluate/{flag_key}",
json=payload,
timeout=self.timeout
)
if resp.status_code == 200:
return resp.json().get("enabled", default)
except Exception:
pass # Fallback sicuro se il sidecar non è raggiungibile
return default
# Esempio di utilizzo nel servizio
client = FlagForgeClient()
if client.is_enabled("v2_async_pipeline", user_id="usr_99482"):
# Esegui il ramo di codice canary
passRollout Canary e Kill-Switch Istantanei
FlagForge supporta la distribuzione canary percentuale, regole di targeting e kill-switch globali istantanei. Le modifiche aggiornano lo stato immediatamente in SQLite, propagandosi tra le istanze senza bisogno di broker esterni come Redis.
Ogni modifica ai flag viene registrata localmente in un registro di audit di sola aggiunta (append-only), garantendo la piena tracciabilità all'interno del tuo cluster Docker o Kubernetes.