It does tend to naturally bubble upwards as you point out, but you can decide where to stop.
E.g. you could describe a complex effect that has retry, scheduling, etc and run it only once with `Effect.runFork(yourEffect)`
That's in general how teams adopt it, in general there's a champion in the team that sells using one feature, and as people get accustomed and the champion does a good work mentoring it slowly takes over whole projects.
Re:Algebraic Effects for the Rest of Us
by satvikpendem on Sunday May 31, 2026 @05:56PM
(#48350142)
It seems Effect doesn't actually have resumable continuations, looks like it's mainly a type driven ease of use library rather than a fundamental algebraic effects system right?
I know parts of Effect like its schema are incrementally adoptable but if you use it substantially with many of its features, isn't it viral in a sense? In that you need to do things the Effect way and wrap libraries into Effect functions?