SDK Reference

@taekcle/web

createClient(options)

type CreateClientOptions = {
  apiKey: string;
  apiUrl?: string;            // default: http://localhost:3000
  identity: { deviceId: string; userId?: string | null };
  pollIntervalMs?: number;    // default 30000
  realtime?: boolean;         // default true (SSE)
};

<TaekcleProvider client={client} />

useFlag(key, fallback?)

useVariant(key, fallback?)

useTaekcle()

identify(client, { deviceId, userId, apiKey, apiUrl })

@taekcle/node (서버)

import { createClient } from '@taekcle/node';

const client = createClient({
  apiKey: process.env.TAEKCLE_KEY!,
  apiUrl: process.env.TAEKCLE_URL,
  identity: { deviceId: 'server', userId: req.user?.id },
  cachePath: '/tmp/taekcle.json', // optional
});

const variant = client.getVariant('experiment-key');

다운타임 동작 (중요)

서버가 다운돼도 SDK는 마지막 성공값을 디스크/로컬스토리지에 보존하고, 콜드스타트 시에도 캐시 우선으로 동작합니다. 호스트 앱은 절대 막히지 않습니다.