Users are running into limitations of the current feed provider API. Could we collect requirements, potentials solutions and work on an update to the API to support some of the new features?
Looking back through the Github issues, I've tried to capture high-level requirements and solutions that have already been identified, included below. *Requirements* ** Support retrieving state about triggers registered with provider* This is the most common requirement. Feed providers only support "CREATE/DELETE" operations. Users want to be able to retrieve current state of triggers from the provider. For example, this would allow people to number of triggers left to fire when maxTriggers is defined. Related issues: https://github.com/apache/incubator-openwhisk/issues/1925 https://github.com/apache/incubator-openwhisk/issues/1398 https://github.com/apache/incubator-openwhisk-package-alarms/issues/86#issuecomment-325204467 https://github.com/apache/incubator-openwhisk/issues/471 ** Add "delete trigger after max" option to enable auto-removing triggers that won't be fired anymore. * Numerous feeds now support a "maxTriggers" to limit the number of trigger activations. What happens once this limit has been reached? There's been discussion about removing "dangling" triggers versus disabling and how to surface this to the user. Should this option be baked into the API? This is relevant for an update to the "alarm" package to support "one-off" triggers. Related issues: https://github.com/apache/incubator-openwhisk-package-alarms/issues/89 https://github.com/apache/incubator-openwhisk-package-alarms/issues/86#issuecomment-325204467 ** Add support for updating feeds?* As the API only supports "create and "delete" operations, what happens when someone needs to update a trigger feed, e.g. updating cron schedule for alarm package. This behaviour will left be left to the feed provider to define. Having to "delete then re-create" creates the potential for lost events. Related issues: https://github.com/apache/incubator-openwhisk/issues/1925 *What other requirements do people have?* *Potential Solutions* ** Extend provider API with new operations.* Add support for STATUS and UPDATE operations in addition to CREATE and DELETE. https://github.com/apache/incubator-openwhisk/issues/1925 * *Add "health" or "status" action to feed packages* Would handle returning status for user registered triggers. https://github.com/apache/incubator-openwhisk/issues/1925#issuecomment-297727773 *Next Steps* ** Gather more requirements/solutions* Hopefully people can do this on the mailing to come up with other requirements and solutions to enhance the feed provider API. ** Define a more feed provider API spec?* Existing documentation for the feed provider API is very short and informal. Would it be helpful to have a more official document as we move to a broader API? This would hopefully encourage others to create new feed providers. https://github.com/apache/incubator-openwhisk/blob/master/docs/feeds.md#implementing-feed-actions ** Update existing feed providers to support new features* If we can agree on an extended feed provider API, the existing packages can be reviewed for updating where relevant. Hopefully this message can spark some discussion, feeds are a really important part of the openwhisk platform. I'm happy to also introduce this on the video call next week? -- Regards, James Thomas
