Do you have to pass `**args` to `update`? Aren't they constant for all invocations on one particular stream? I would then rather pass it as constructor when creating operator object. I know there is no much difference, but I makes more clear that `**args` is not something which is decided for each `update` but is something which is same for whole invocation.

Additionally, I would rename arguments to parameters or even configuration. Arguments give me feeling that it is again something which are additional values to the function, while parameters is something which configure how the whole function behaves.