#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:
- Is this core business logic? (validation, calculation, orchestration) β Ranvier way: Visualization, composition, testability
- Do I need to see it in the Schematic graph? (debug complex flows, document for team) β Ranvier way: Only Transitions appear in Circuit view
- Is this pure infrastructure? (CORS, TLS, rate limiting, circuit breaking) β Ecosystem way: Reuse battle-tested libraries (Tower)
- Am I migrating from an existing codebase? (Tower app, actix service) β Hybrid: Start with ecosystem, gradually adopt Ranvier
- 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.
#Related Documents
- Boundary Map β Where core ends and edges begin
- Code Examples β Real-world patterns
- PHILOSOPHY.md β Decision Framework β Detailed scenarios and migration paths