I just push a new feature for the Receivers that will be useful for the new "triggers" and the Collectd module : the external commands direct routing.
It's disabled by default for the receivers, but if you enable it (direct_routing 1 in the receiver configuration) the new behavior will apply :
* when a receiver get an external command, it will look if it's a "host local" one (like a check) or a global one (like adding a new poller or changing a contact property)
* if it's a global one, it will put in a buffer, like before.
* if it's a local one and it know about the hostname (the arbiter send it the hosts <-> scheduler association) it will directly send the command to the scheduler without go througth the arbiter. If it doesn't know about the name or if there is a problem with the action, it will put it in the buffer.
* like before, the arbiter take each second the buffer and send the global commands to all schedulers.
It's useless for massively active architecture, but for passive one (like with a massive use of the Collectd module), this allow to add new receivers to manage more data.
So we can also scale for the passive checks or data :)