Idea: add the ability for plugins to receive multiple objects in one shot instead of forking for each object. That way the plugin would be invoked once per stage execution.
Changing the Notifier is quite easy, it can be done in a few minutes (I just tried). The tricky part then is handling the ACKs.
Here are some solutions I thought of:
The ACK ID could be a list of IDs. This may introduce subtle type errors, so I don't like it.
The ACK ID could be a hash of the list of IDs. I'm not quite comfortable with this either - the hash wouldn't correspond to any Entity.
The ACK ID could be a concatenation of IDs (as it happens with Relationship). This sounds better. :)
Create a new Entity to represent a Dataset. This seems like the best solution, but it's more work. It also solves the problem of how to call the plugins - instead of creating a new method, we can just use the same method with this new Entity type. To indicate that we want multiple objects in a plugin we return the Dataset type in get_accepted_types, just like we do with Relationship types.
Idea: add the ability for plugins to receive multiple objects in one shot instead of forking for each object. That way the plugin would be invoked once per stage execution.
Related: #268