Skip to content
Lumen × LangGraph × Kova

Lumen × LangGraph × Kova

목표: LangGraph Agent의 Checkpointer를 SqliteSaver에서 LumenCheckpointer로 교체하고, Kova에 배포하여 크래시 복구를 비교 관찰합니다.

Before / After ​

Before — 순수 LangGraph

단일 머신, 원격 백업 없음 · 프로세스 간 락 필요 · 밀리초급 크래시 복구 · 비용 추적 없음.

After — Lumen + Kova

마이크로초급 크래시 복구(Kova WAL 엔진) · 네이티브 멀티프로세스 안전성 · 자동 Trace + Cost · 원격 영속화.

Before ​

python
from langgraph.checkpoint.sqlite import SqliteSaver

graph = wf.compile(checkpointer=SqliteSaver.from_conn_string("./state.db"))

After ​

python
from lumen_ai import LumenCheckpointer, LumenTracer
from kova import KovaClient

kova = KovaClient("kova://prod-cluster")

graph = wf.compile(
    checkpointer=LumenCheckpointer(kova_client=kova),
    callbacks=[LumenTracer()],
)

로컬 검증 ​

  1. 로컬 Kova 기동

    bash
    docker run -d --name kova -p 9999:9999 ghcr.io/hanmahong5-arch/kova:latest
  2. Agent 실행

    bash
    python my_agent.py
  3. 크래시 시뮬레이션

    bash
    kill -9 $(pgrep -f my_agent)
  4. 재시작 — 중단 지점에서 이어서 진행

    bash
    python my_agent.py

Kova에 배포 ​

yaml
# agent.yaml
name: my-research-agent
entry: python my_agent.py
replicas: 3
checkpointer: lumen
wal:
  retention: 7d
bash
lumen deploy --target kova://prod-cluster

크래시 복구 비교 실험 ​

지표SqliteSaverLumen + Kova
복구 지연8ms(단일 머신)마이크로초급
다중 복제본추가 락 필요네이티브
크로스 데이터센터수동 복제비동기 복제 내장
LLM 재호출SQLite 쓰기 실패 시 재호출재호출 없음
Trace없음자동 연계

마이크로초급 복구는 어디서 오는가

Kova 엔진의 스케줄링 지연은 3μs까지 낮습니다(FIFO 전체 파이프라인 Criterion 벤치마크 3.17μs, 315K ops/s). LumenCheckpointer는 LangGraph의 checkpoint 쓰기를 Kova WAL에 위임합니다 — 복구는 SQLite 파일 레벨이 아니라 엔진 레벨의 WAL 리플레이로 진행되므로 마이크로초급이며, 단일 머신 SQLite의 밀리초급보다 훨씬 빠릅니다.

다음 단계 ​

다음 단계

Powered by Lurus Technologies