Essential Effects logo

Essential Effects

Subscribe
Archives
January 12, 2021

Essential Effects: early access release and more!

Greetings everyone -

Tomorrow will be a big day: I'll be releasing the early-access edition of "Essential Effects"! (I've included the current table of contents to give you an idea of what the book covers.) Early-access will cost $35, with free updates when the final version is published. Check out the main site tomorrow for the link.

I'm also giving a talk tomorrow about effects for the SF Scala user group, anyone can attend!

Finally, there are still tickets available for the upcoming 3-day "Essential Effects" course, January 27-29th. You can learn more at the course site.

.. Adam


Table of Contents

  • Preface
    • Acknowledgements
    • About this book
    • Cats Effect versions
    • Source code for examples and exercises
    • Prerequisites
  • Chapter 1. Effects: evaluation and execution
    • The substitution model of evaluation
    • Dealing with side-effects
    • The Effect Pattern
    • Capturing arbitrary side-effects as an effect
    • Composing effects
    • Summary
  • Chapter 2. Cats Effect IO
    • Constructing IO values
    • Transforming IO values
    • Executing IO values
    • IO as an effect
    • Executing effects in applications with IOApp
    • Summary
  • Chapter 3. Parallel execution
    • Does IO support parallelism?
    • The Parallel typeclass
    • Inspecting parallelism
    • parMapN
    • parTraverse
    • parSequence
    • Summary
  • Chapter 4. Concurrent control
    • Decomposing the behavior of parMapN
    • Gaining control with Fiber
    • Canceling a running Fiber
    • Racing multiple effects
    • Summary
  • Chapter 5. Shifting contexts
    • How much parallelism can we get?
    • The need for multiple contexts
    • Contexts for I/O-bound actions
    • How do you know something is blocking?
    • Finer-grained control of contexts
    • Example: contexts for database access in Doobie
    • Summary
  • Chapter 6. Integrating asynchrony
    • Asynchronous callbacks
    • Integrating with Future
    • Summary
  • Chapter 7. Managing resources
    • Creating a Resource to manage state
    • Composing managed state
    • Resources for dependency management
    • Summary
  • Chapter 8. Testing Effects
    • Assertions on effectful values
    • Testing effect scheduling by controlling its dependencies
    • Summary
  • Chapter 9. Concurrent coordination
    • Atomic updates with Ref
    • Write-once synchronization with Deferred
    • Concurrent state machines
    • Summary
  • Chapter 10. Case study: job scheduler
  • Chapter 11. Conclusion
  • Glossary
  • Appendix A: Cheatsheets
  • Appendix B: Abstracting effects with typeclasses
  • Appendix C: Changes in Cats Effect 3
  • Appendix D: Solutions to selected exercises
  • References
Don't miss what's next. Subscribe to Essential Effects:
Powered by Buttondown, the easiest way to start and grow your newsletter.