You could argue that putting this here sullies the otherwise clean functional interface, but that sacrifice is laid upon the alter of sanity.
You could argue that putting this here sullies the otherwise clean functional interface, but that sacrifice is laid upon the alter of sanity. It's much easier to reason about which materializer/execution context is used when it comes baked in with a client -- in particular in the retry/failover scenarios.
We don't want to e.g. accidentally bring another materializer (and by extension its execution context) in scope from a stopped actor system