#Ranvier는 타입 기반 의사결정 엔진입니다

버전: 0.33.0 최종 업데이트: 2026-03-15 적용 대상: ranvier (facade), ranvier-core, ranvier-runtime 카테고리: Philosophy & Architecture


웹 프레임워크가 아닙니다. 실행을 명시적이고, 검사 가능하며, 안전하게 리팩터링할 수 있도록 유지하는 구조적 레이어입니다. 여러분의 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는 해당되지 않습니다. 런타임 로직이 가시적이고 검증 가능하게 유지되기를 원한다면, 올바른 곳에 오셨습니다.


#다음 단계

  • 튜토리얼 — 첫 실행
  • 철학 — Opinionated Core, Flexible Edges
  • 설계 원칙 — 아키텍처 결정 기록