#Ranvier는 타입 기반 의사결정 엔진입니다
버전: 0.33.0 최종 업데이트: 2026-03-15 적용 대상: ranvier (facade), ranvier-core, ranvier-runtime 카테고리: 철학과 아키텍처
Ranvier는 웹 프레임워크가 아닙니다. 실행 흐름을 명시적으로 드러내고, 검증 가능하게 유지하며, 안전하게 리팩터링할 수 있도록 돕는 구조 레이어입니다. 여러분의 Rust 코드가 회로가 되고, Ranvier가 그 회로를 실행합니다.
#핵심 원칙
| 원칙 | 설명 |
|---|---|
| 실행은 명시적 | Axon 체인이 의사결정의 정확한 순서를 기술합니다. 숨은 미들웨어도, 암묵적 제어 흐름도 없습니다. |
| 구조는 검사 가능 | Schematic은 런타임 실행 없이 노드와 엣지를 캡처합니다. diff, 검증, 시각화를 위한 산출물입니다. |
| 제어 흐름은 데이터 | Outcome은 분기, 점프, 방출, 장애를 명시적 결과로 모델링합니다. 추측 없이 의사결정을 감사하고 재생할 수 있습니다. |
#계약
- Core는 프로토콜에 독립적입니다. HTTP는 어댑터 레이어에서 다룹니다.
- Schematic은 런타임 로직을 실행하지 않습니다. 읽기/검증/시각화 전용입니다.
- 단순한 API는 허용하지만, 복잡성은 숨기지 않고 경계 안으로 분리합니다.
#Resources는 명시적으로 유지
Ranvier는 전역 미들웨어 뒤에 상태를 숨기지 않습니다. 공유 리소스는 타입이 지정된 Bus 또는 명시적 리소스 번들에 담기며, 각 Transition이 언제 읽을지 직접 선택합니다.
- Bus는 타입으로 인덱싱하며 선택적(opt-in)입니다. 암묵적 주입은 없습니다.
- Resources는 인그레스에서 연결합니다. 런타임에 마법처럼 나타나지 않습니다.
- **역량 규칙(capability rules)**은 핵심 계약을 바꾸지 않으면서 겹쳐 적용할 수 있습니다.
#Ingress / Egress 경계
- Ingress는 프로토콜 요청을 초기 상태로 변환합니다.
- Axon은 타입이 지정된 Transition으로 의사결정 흐름을 실행합니다.
- Egress는 Outcome을 프로토콜 응답으로 매핑합니다.
#Schematic Diff 및 검증
Schematic은 정적 산출물입니다. 시스템 실행 없이 CI에서 회로를 diff하고 검증할 수 있습니다.
#신뢰 및 LLM 경계
AI가 구조를 제안할 수는 있지만 런타임 로직을 바꾸지는 않습니다. 모든 변경은 명시적이고, 검토 가능하며, Schematic에 대해 검증합니다.
#간단한 예제
use ranvier::prelude::*;
let axon = Axon::simple::<anyhow::Error>("Hello")
.then(Hello);
Ranvier::http()
.bind("127.0.0.1:3000")
.route("/", axon)
.run(())
.await?;올인원 프레임워크를 찾고 있다면 Ranvier는 맞지 않을 수 있습니다. 런타임 로직을 눈에 보이게 유지하고 검증 가능하게 다루고 싶다면, Ranvier가 잘 맞습니다.
#다음 단계
- 튜토리얼 — 첫 실행
- 철학 — Opinionated Core, Flexible Edges
- 설계 원칙 — 아키텍처 결정 기록