Backend Selection Decision

Wardwright initially kept Go, Rust, and Elixir backend prototypes in the live tree to compare implementation cost, correctness, testability, and runtime fit against the same contracts. That comparison has now served its purpose. The live implementation should focus on Elixir plus Gleam on the BEAM.

The project was called Ingary during the bakeoff. Wardwright is the tentative product name going forward. Repository, API namespace, and Elixir module names now use Wardwright; GitHub Pages is configured for wardwright.dev.

Decision

Why

The product direction increasingly depends on properties where the BEAM is a natural fit:

Go and Rust remain viable technologies for specific future boundaries, such as sidecars, WASM tooling, native policy engines, or edge packaging. They no longer need to be maintained as whole parallel backend prototypes.

Policy Engine Implication

Policy execution should be split by trust tier:

This avoids overselling Dune as a hostile-code security boundary while still letting Wardwright use BEAM-native ergonomics for local policy iteration.

Reversal Criteria

Reintroduce a non-BEAM backend only if a concrete spike shows that BEAM cannot meet a required product constraint, such as:

Until then, backend work should start from the Elixir/Gleam architecture.