#Philosophy - Opinionated Core, Flexible Edges
Version: 0.43.0 Updated: 2026-04-03 Applies to: ranvier (all crates) Category: Philosophy & Architecture
Ranvier enforces a specific paradigm (Transition/Outcome/Bus/Schematic) for its internal architecture, but gives you complete freedom to integrate with other Rust ecosystem tools (Tower, actix, Axum, etc.) at the boundaries.
Static assets follow the same rule. Ranvier can co-serve a built frontend via
serve_dir() and spa_fallback(), but pure static hosting belongs to standard
servers or CDNs.
#Core Sections
#Core Paradigm
Understand the four foundational concepts: Transition, Outcome, Bus, and Schematic - the building blocks that make Ranvier, Ranvier.
#Why Opinionated Core?
Discover why Ranvier enforces Transition/Outcome/Bus/Schematic for identity, learning curve, and consistency.
#Why Flexible Edges?
Learn how Ranvier embraces the Rust ecosystem at boundaries for ecosystem integration, gradual migration, and user autonomy.
#Boundary Map
See where the core ends and edges begin. Understand what must use Ranvier paradigm vs. what can use ecosystem tools.
#Decision Framework
Follow the decision tree to choose between Ranvier way, ecosystem way, or hybrid approach for your specific use case.
#Code Examples
Explore real-world patterns: pure Ranvier authentication, Tower integration, hybrid approach, and e-commerce workflows.
#TL;DR
| Approach | When |
|---|---|
| Opinionated Core | Business logic - Ranvier way (Transition-based, visualized) |
| Flexible Edges | Infrastructure (CORS, auth, DB, static delivery) - Your choice (Tower, ecosystem libraries, standard servers/CDNs) |
| When in doubt | Start with the Ranvier way. If you hit a limitation, integrate ecosystem tools. |
#Philosophy in Practice
| Scenario | Recommendation |
|---|---|
| Complex workflows | Ranvier shines (multi-step, state machines) |
| Simple CRUD | Ecosystem tools OK |
| Existing Tower app | Hybrid (keep Tower, add Ranvier for new features) |
| New project | Pure Ranvier (full visualization, one learning path) |
This philosophy evolved through production experience. For detailed architecture decisions, see DESIGN_PRINCIPLES.md.