Essential Effects logo

Essential Effects

Subscribe
Archives
October 29, 2020

Essential Effects: early access soon!

Hello everybody -

I’ve been steadily working my way through the chapters, both doing general editing and diving a bit deeper into the underlying concepts where it is needed. For example, rather than talk too much about the low-level Fiber interface for concurrency, because you probably won’t (or shouldn’t!) use it, we do need to introduce what concurrency means, and talk about notions like cancelation that come along with it, and then show how the Fiber interface supports that model.

I’ve also been exploring what changes, if any, are required for Cats Effect 3, which had a recent “M1” release. I haven’t been worried too much about this, to be honest, because the book focuses on the concrete IO type, and most of the changes in CE3 relate to the structure of the typeclasses that the IO type implements.

That being said, there are a few larger conceptual issues that need to be addressed in the book, like the removal of the ContextShift and Blocker types, which in Cats Effect 2 model “where” computations happen, and are implemented as wrappers on top of scala.concurrent.ExecutionContext values. Since Cats Effect 3 directly references ExecutionContext values to model “where” computations happen, my plan for the existing chapter (“Shifting Contexts”) is to emphasize the need for “where”–we need multiple contexts to isolate effect execution–and focus less on the particulars of the API.

I hope to offer an early access version in the next few weeks, probably through Gumroad.

Finally, I’ve scheduled another US-timezone “Essential Effects” course for November 18-20, and am setting up an EU-timezone version for later in November. Ping me for a discount code!

Take care, and let me know if you have any questions,

.. Adam

Don't miss what's next. Subscribe to Essential Effects:
Powered by Buttondown, the easiest way to start and grow your newsletter.