Our current trigger feed mechanism only attempts to check preconditions when a potential dependent feed has completed execution. Furthermore, the precondition is only checked if it contains at least one FeedExecutedSinceFeed metric. This is efficient because there are just a few metrics supplied by Kylo out of the box. This is very limiting though because it restricts when preconditions are composed of user-defined metrics supplied by a custom plugin and no FeedExecutedSinceFeed is used.
We should support a method whereby a user indicates when a precondition should be checked. This could be based on a schedule (for instance) rather than only when another feed completes execution. Since we already support special SLA-related annotations, perhaps one solution would be to add additional annotations which can be used to mark certain Metric classes as to how they are checked.
For instance, a @FeedExecDependant annotation on a metric could indicate that this metric depends on feed execution results. A @ScheduleDependant annotation would indicate that the metric depends on a set schedule. Our UI could then used these annotations to present to the user additional input fields that describe when a precondition should be checked. This additional metadata then be used to query which preconditions need to be check based specific activities occurring in Kylo.