Comparing `Effect.Service` and `Context.Tag` for Dependency Management

Are there any reasons to use
Effect.Service
over
Context.Tag
other than convenience? In our quite large codebase I find the pattern and regonizability of always using
Context.Tag
for declaring dependencies and Layer.scoped|effect|succeed|whatever to create implementations more powerful than the couple of lines you save by using
Effect.Service
. Even for dependencies that only have one implementation.
Was this page helpful?