# Keep the pure core pure

Principle `keep-the-pure-core-pure`. An effect system earns its place at effectful boundaries.

Keep domain decisions as pure functions over tagged values. Decode untrusted input at the boundary. Model expected failures as typed errors, and keep defects separate. Retry only typed transient failures, and only when the operation is proven idempotent.

Read the full section in the [uncomplect skill](/skills/uncomplect#typed-effects-keep-the-pure-core-pure).

## Related
- [Functional core](/terms/functional-core)
- [Domain error](/terms/domain-error)
- [Idempotency](/terms/idempotency)

## Skills
- [uncomplect](/skills/uncomplect)

## Sources
- Effect contributors. *Effect documentation*. [Link](https://effect.website/docs/). ([effect-documentation](/bibliography#effect-documentation))
