#Decision Framework β€” How to Choose Your Approach

Version: 0.33.0 Updated: 2026-03-15 Applies to: ranvier (all crates) Category: Philosophy & Architecture


When you face a choice between "Ranvier way" and "ecosystem way", use this framework to make informed decisions.

#Questions to Ask (In Order)

The first "Yes" determines your approach:

  1. Is this core business logic? (validation, calculation, orchestration) β†’ Ranvier way: Visualization, composition, testability
  2. Do I need to see it in the Schematic graph? (debug complex flows, document for team) β†’ Ranvier way: Only Transitions appear in Circuit view
  3. Is this pure infrastructure? (CORS, TLS, rate limiting, circuit breaking) β†’ Ecosystem way: Reuse battle-tested libraries (Tower)
  4. Am I migrating from an existing codebase? (Tower app, actix service) β†’ Hybrid: Start with ecosystem, gradually adopt Ranvier
  5. Does my team already know tool X? (Tower, Axum, diesel) β†’ Ecosystem way β†’ Ranvier: Use existing knowledge, wrap in Transition later

#Decision Flowchart

START
  β”‚
  β”œβ”€ Core business logic? ───Yes──> Ranvier way (Transition)
  β”‚
  β”œβ”€ Need visualization? ────Yes──> Ranvier way
  β”‚
  β”œβ”€ Pure infrastructure? ───Yes──> Ecosystem way (Tower/library)
  β”‚
  β”œβ”€ Migrating existing? ────Yes──> Hybrid (Tower + Ranvier)
  β”‚
  └─ Default ────────────────────> Ranvier way (when in doubt)

#Summary Table

Domain Ranvier Way Ecosystem Way Hybrid
Business logic Always Never β€”
Complex auth Recommended Possible Common
CORS Overkill Use Tower β€”
Database Wrap in Transition Direct use OK Common
Metrics Manual Use Tower β€”
Middleware For business rules For infrastructure Common

#When Should I Use Ranvier?

Scenario Recommendation
New project, complex workflows Pure Ranvier (Transition)
New project, simple CRUD Maybe Ranvier (simpler frameworks OK)
Existing Tower app Hybrid (keep Tower, add Ranvier for new features)
Existing actix/Axum app Embed Ranvier in handlers
Microservice orchestration Ranvier for orchestrator
Leaf CRUD services Use simpler frameworks
Just need CORS/basic auth Tower/actix/Axum middleware is simpler
Multi-step state machines Ranvier's sweet spot

Default recommendation: If in doubt and you have any multi-step logic, use Ranvier. The visualization alone justifies the investment.