The command permissions get the attention and the key pattern is where the actual isolation lives, because a service with write access to every key is not isolated by having fewer verbs.
> ACL SETUSER worker on >pw ~queue:* +@all
# looks scoped. is not:
# ~queue:* matches queue:jobs AND queue:../anything
# there is no path semantics. it is a glob on a flat namespace.
# several patterns are allowed, and that is the correct shape
> ACL SETUSER worker ~queue:* ~locks:worker:* +@all
The flat namespace is the thing to internalise: keys have no hierarchy, the colon is a convention, and a pattern is a glob rather than a prefix with meaning. A service that needs two unrelated prefixes gets two patterns rather than a looser one. ACL DRYRUN arrives in 7.0 and until then the only way to check a pattern is to authenticate as the user and try, which is worth doing before the rollout rather than after.