Configuration files are very flexible (only start-time configuration, "reload configuration" is kind of a hack, etc)
logstash agents should expose an API that enables configure and manage it.
add, remove, and change inputs, outputs, and filters.
To serve the configuration api, every active plugin configuration will need to have an "id" so API clients can refer to specific plugin instances to add/remove/modify them.
The API will likely be over HTTP using something REST-ey.
how about we introduce config handlers ? similar to inputs, filters and outputs?
Rest is one type, 0mq, ActiveMQ others. This would make mass reconfiguration much easier.
Submit a reconfigure command over a queue and bang, all logstash servers are reconfigured .
I'm down with supporting multiple ways of telling logstash about configuration.
The bulk of the hard work in implementing this, though, will be internal changes to make the active plugins more programmable at run-time.