# ECP-0002: initial technical direction

Status: Draft

## Problem

We need a coherent starting stack that aligns with the constitution and can evolve without locking the project into fragile dependencies.

## Decision

Adopt the following initial technical direction:

- Rust-first core for protocol and node runtime.
- Media over QUIC (MoQ) for publish/subscribe media delivery.
- Deterministic chunking profiles to support de-duplication and availability.
- iroh as the programmable mesh substrate for peer routing.
- Client surfaces: Tauri desktop app, CLI, and static web UI.

These are starting points, not immutable commitments. They may be revised by later ECPs.

## Alternatives considered

- HLS/DASH for primary delivery: rejected due to mismatch with low-latency pub/sub goals.
- Centralized relay only: rejected due to resilience and user sovereignty goals.
- Non-Rust core: deferred to keep early integration cohesive.

## Rollout / teardown

- Scaffold crates and documentation that align with this direction.
- Revisit once MoQ implementations and browser support stabilize.
