Open RaasAhsan opened 4 years ago
This course introduces Cats Effect as a tool for building resource-safe and concurrent applications.
Cats Effect is a library that makes it easy to write code that effectively uses multiple cores and doesn’t leak resources. This makes building complex applications, such as highly concurrent services, much more productive. This course aims to introduce the core concepts in Cats Effect, giving you the knowledge you need to go further with the library in your own applications. This course is not, however, a detailed dive into every aspect of Cats Effect. Our aim is to cover everything you need to know and set you up so you can rapidly learn additional details on your own if needed.
How to safely create, compose, and execute effectful Scala programs using the Typelevel cats-effect library.
cats-effect is a library that makes it easy to write code that effectively uses multiple cores and doesn’t leak resources. This makes building complex applications, such as highly concurrent services, much more productive. This book aims to introduce the core concepts in cats-effect, giving you the knowledge you need to go further with the library in your own applications.
A practical book aimed for those familiar with functional programming in Scala who are yet not confident about architecting an application from scratch.
Together, we will develop a purely functional application using the best libraries in the Cats ecosystem, while learning about design patterns and best practices.
We often use the term effect when talking about the behavior of our code. But what is an effect? Can we talk about effects in precise ways, in order to write better programs that we can better understand?
Timeouts, retries, and other error scenarios while testing.
Cats Effect is a functional side effect library - Gavin Bisesi explains what that means, what it gives you, how to use it, and why you should care.
Teikametrics adopted this library last year, and in this talk Gavin discusses how they approach application design using it, both from a green field perspective as well as the techniques used to migrate a living codebase away from akka-streams without "the big rewrite".
Come join me and learn how to deal with side effects in a pure functional way while abstracting over the effect type and taking composition to the next level. We will review the most important features such as synchronous and asynchronous computations, error handling, safe resource management, concurrency, parallelism and cancellation starting by reviewing the basic concepts.
Ref
and Deferred
come from cats-effect
.)
fs2 offers a very powerful and composable set of concurrent combinators and data structures, which are all built out of two deceptively simple primitives: Ref and Deferred.
This talk will explain what they are, the design principles behind them, and how to use them to build your own business logic abstractions. In the process, we will discover a general pattern in the form of concurrent state machines, and see how it integrates with final tagless on one hand, and streaming control flow on the other.
If you have ever wondered how to translate that complicated piece of actor logic in pure FP, or how fs2’s Queues, Topics and Signals work under the hood, this is the talk for you.
Here's another video: https://www.youtube.com/watch?v=Gig-f_HXvLI
Here's another one (requires login): https://skillsmatter.com/skillscasts/12634-cats-effect-tagless-final-and-beyond
Oh to be clear on the purpose of this issue…
This doesn't have to be just restricted to resources which are free and/or available without a paywall. Books are usually not free, for example, and neither is training. Part of the purpose of this section is to give more visibility to folks (like @arosien and @gvolpe) who are building resources around Cats Effect, commercial or otherwise.
I know there's sometimes a bit of reticence to self-promote, particularly when it's not free, but this is exactly the space wherein self-promotion is being requested. :-)
Separately from all of the above… Here's a link to @SystemFw's Scala World talk on how fibers work: https://www.youtube.com/watch?v=x5_MmZVLiSM This talk, more than any other source or article, had a profound impact on the thinking which drove the design of IO
in Cats Effect 3.
I think there are a ton of gists are also worth including, so: https://gist.github.com/djspiewak/46b543800958cf61af6efa8e072bfd5c is a great resource for organizing thread pools properly.
Concurrency In Scala with Cats-Effect just appeared from @slouc.
Rock the JVM has just started to publish material on Cats and Cats-Effect (full disclosure: I'm the author for both)
I attempted to explain the advantages of polymorphic effects here: https://timwspence.github.io/blog/posts/2020-11-22-polymorphic-effects-in-scala.html
Hopefully someone has done a better job somewhere but if not then we can link to this 😂
As we're transitioning to a new documentation site, we should include links to third-party educational resources for Cats Effect to make them more accessible to users. Things like books, blog posts, trainings, videos, gists, etc. We should try to compile a list of them here.