Effect.runPromise somewhere to get the values out of Effect. By doing it that, it means that all the caching benefits of Effect.cached or Effect.cachedFunction will be scoped to the runPromise, and the computation will be triggered every run.Effect.runSync(Effect.cached(…)) to create a globally cached function, but the problem with this approach is that it basically makes the code hard to test, especially when the cached effect is inside a service. Thus the question