eoc and implementEffect(...) when you already have an oRPC contract or want contract-first enforcement.
Define the contract
contract.ts
Implement with Effect
router.ts
What contract leaves expose
Contract leaves preserve the contract-defined input, output, and error surface. They add.effect(...) alongside implementer methods such as .handler(...) and .use(...).
They do not expose contract-changing methods such as .input(...) or .output(...) because those belong in the contract definition.
When to use this path
Use contract-first when:- multiple teams depend on a stable API contract
- you generate clients from contracts
- you want API shape changes isolated from implementation code
- you want tagged Effect errors declared at contract definition time
eos builders when you want the shortest path to implementing procedures.
Next step
Read theimplementEffect reference.