#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
  • 설계 원칙 — 아키텍처 결정 기록