# A Prelude of Purity, scaling back ZIO

Some parts of our applications don't need to be asynchronous or interact with the outside world: it's enough that they are *stateful*, possibly with the ability to handle *failures*, *context*, and *logging*. Although you can use ZIO 2 or monad transformers for this task, both come with drawbacks. In this presentation, I've introduced `ZPure`, a data type from [ZIO Prelude](https://github.com/zio/zio-prelude) which lets you scale back on the power of ZIO 2, but with the same high performance, type inference, and ergonomics you expect from ZIO 2 libraries.

**Watch the recording:**

%[https://www.youtube.com/watch?v=Vq449igxuLk] 

<div data-node-type="callout">
<div data-node-type="callout-emoji">💡</div>
<div data-node-type="callout-text"><em>You can find the slides</em> <a target="_blank" rel="noopener noreferrer nofollow" href="https://www.slideshare.net/jv2301/a-prelude-of-purity-scaling-back-zio" style="pointer-events: none"><em>here</em></a></div>
</div>
