Cargando...
Simula despliegues porcentuales deterministas, asignación fija de usuarios y duración de experimentos A/B
Carga escenarios canario, despliegues por fases y pruebas A/B
Establece el identificador del flag y el porcentaje objetivo
Los usuarios se asignan de forma determinista a cubos (0-99) mediante hashing consistente
// Next.js Middleware Edge Feature Flag
import { NextResponse, type NextRequest } from 'next/server';
function hashBucket(key: string): number {
let hash = 0x811c9dc5;
for (let i = 0; i < key.length; i++) {
hash ^= key.charCodeAt(i);
hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
}
return Math.abs(hash >>> 0) % 100;
}
export function middleware(request: NextRequest) {
const userId = request.cookies.get('userId')?.value || request.ip || 'anonymous';
const bucket = hashBucket('new-checkout-v2:' + userId);
const isEnabled = bucket < 5; // 5% rollout
const response = NextResponse.next();
response.headers.set('X-Flag-new-checkout-v2', isEnabled ? 'true' : 'false');
return response;
}// Pure TypeScript Deterministic Flag Evaluator
export function isFeatureActive(userId: string): boolean {
let hash = 0x811c9dc5;
const key = 'new-checkout-v2:' + userId;
for (let i = 0; i < key.length; i++) {
hash ^= key.charCodeAt(i);
hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);
}
const bucket = Math.abs(hash >>> 0) % 100;
return bucket < 5;
}