Orcha 🧠
Orcha is a lightweight orchestrator for managing pure-functional service state and interactions in Elixir. It promotes decoupled, composable systems by encapsulating state transitions and inter-service communication in a central context called the realm.
Designed for functional purity, testability, and introspection, Orcha is perfect for orchestrating stateless services with explicit state management and chaining.
⚠️ Note: This is a proof-of-concept and experimental project. While the architecture is robust for functional state management, Orcha is not production-hardened yet. Use it to explore clean system design, service orchestration, and functional state modeling.
✨ Concept
- Centralized state management
- Functional purity: no mutation or side effects
- Deterministic service interactions
- Easy mocking and testing
- Clear flow of state, time, and messages
📂 Playground
To try Orcha interactively and see a complete working example, launch IEx with: iex -S mix.
The project includes a .iex.exs file that sets up the environment, services, and interactions described above.
- 💡 Tip: Use the .iex.exs playground to test custom services, tweak logic, and explore how pure-functional systems behave with state orchestration.
🔧 Installation
Add :orcha to your list of dependencies in mix.exs:
def deps do
[
{:orcha, "~> 0.1.0"}
]
end