Not really a blocker, since this works, but why not just pass `self.log` instead of rebinding all the variables?  A transaction ID has already been generated, and everything else about the request may have already been bound?

The only thing that is wrong is the system (fully qualified name).  And it makes sense that you are calling `with_transction_id` so that the the `system` kwarg is re-bound instead of just manually re-binding it, but it's being bound to just the sort of big rest resource.  Example:  the system is now "otter.rest.groups.config", rather than "otter.rest.groups.config.update_config", etc.  without looking at the details (and the URI + Method).

This might be fine however, and if removing the method name from the system was an intentional decision then never mind :)