매뉴얼
Ranvier 핵심 개념과 워크플로.
이 매뉴얼은 Ranvier의 기본 원리, 계층 경계, 그리고 CLI 도구를 빠르게 참조할 수 있도록 정리했습니다.
레이어 모델
Core
프로토콜 독립 계약: Transition, Outcome, Bus, Schematic.
Runtime
Axon 실행 엔진과 명시적 조합.
Adapter
Ingress/Egress 경계. HTTP는 이 계층에 존재합니다.
코어 타입
Transition: 상태를 Outcome으로 변환하는 async 계약.
Outcome: Next, Branch, Jump, Emit, Fault.
Bus: 타입 기반 리소스 컨테이너.
Schematic: Axon에서 추출된 노드/엣지 구조.
Bus & 리소스 연결
Bus는 의존성을 명시적으로 보여줍니다. 리소스는 경계에서 삽입되고, Transition은 필요한 시점에 읽습니다.
let mut bus = Bus::new();
bus.insert(DbPool::new(...));
bus.insert(Tracer::global());
// Later, inside a transition:
let db = bus.read::<DbPool>();Ingress Builder
Ranvier::http()
.bind("127.0.0.1:3000")
.route("/", axon)
.fallback(not_found)
.run(resources)
.await?;Ranvier::http()는 웹 서버가 아니라, 프로토콜 트래픽을 Axon 실행으로 연결하는
Ingress Builder입니다.
Ingress / Egress 경계
Ingress는 요청을 타입 입력 상태로 변환합니다.
Axon이 Transition을 실행하고 Outcome을 반환합니다.
Egress가 Outcome을 프로토콜 응답으로 변환합니다.
Schematic Diff & Validation
Schematic은 구조 데이터이므로 런타임 전에 diff와 검증을 수행할 수 있습니다. CI 체크, 리팩터링 안정성, 시각적 검증에 사용됩니다.
신뢰 경계 & LLM
LLM은 구조나 문서 제안만 가능합니다. 런타임 로직 변경은 명시적 리뷰와 Schematic 검증을 거칩니다.
CLI 도구
Schematic Export
ranvier schematic basic-schematic --output schematic.json
Projection From Schematic
ranvier status projection-from-schematic basic-schematic --output ./dist/trace
Projection From Timeline
ranvier status projection-from-timeline ./dist/sample.timeline.json --output ./dist/trace
Inspector + Trace 아티팩트
RANVIER_TRACE_PUBLIC_PATH=./dist/trace/trace.public.json
RANVIER_TRACE_INTERNAL_PATH=./dist/trace/trace.internal.json
RANVIER_TIMELINE_MODE=overwrite
RANVIER_TIMELINE_MAX_EVENTS=1000
RANVIER_TIMELINE_SAMPLE_RATE=1.0
RANVIER_TIMELINE_ADAPTIVE=fault_branch검증 스냅샷 (2026-02-05)
cargo run -p typed-state-tree: 성공 (정상 경로 + 접근 거부 경로).cargo run -p basic-schematic: 성공 (schematic JSON + Axon 실행 출력).cargo run -p order-processing-demo: 성공 (성공 + 분기 케이스).참고:
hello-world는 HTTP 서버가 상주합니다. cargo run -p hello-world로 검증하세요.