README.md

# 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`:

```elixir
def deps do
  [
    {:orcha, "~> 0.1.0"}
  ]
end