Hi William, Totally agree on keeping interface as abstract as possible. Interfaces feel like natural solution here. It should be relatively easy to provide spring integration implementation of hook interface. Probably we can even have default spring integration hook provided as an example.
On Sun, Oct 21, 2018 at 6:33 AM William Guo <[email protected]> wrote: > hi Nick, > > I agree with you we need to have some lifecycle hooks for jobs. > > No matter which extension mechanism we choose at runtime, > but we can always abstract common lifecycle interfaces, and implements > different solutions for different environments. > > Say, at runtime someone can configure griffin extension mechanism as > 'Hive-style' and others can configure as spring integration model. > > We cannot decide which one is super than other, but we can implement > multiply solutions and let users decide at deployment time? > > What do you think? > > Thanks, > William > > > > On Fri, Oct 19, 2018 at 2:03 PM Nick Sokolov <[email protected]> wrote: > > > Hi all, > > > > I'd like invite the community to discussion of Job object lifecycle hooks > > design (GRIFFIN-200 <https://issues.apache.org/jira/browse/GRIFFIN-200 > >). > > > > On a high level, idea is to have hooks executed triggered by JobService > > before/after job is created, or before/after job is deleted, and so on. > > Main point is to provide extension mechanism for JobService, allowing > > third-party implementations of following features: > > > > - validating naming conventions on the jobs > > - validating cron schedules (whether job is scheduled "not too > > frequently") > > - creating dashboards for each new job and/or alerts in third-party > > system (Grafana, Elastalert) > > - RBAC implementation (Hive-style, as plugin) > > - disabling alerts in third-party system if job is paused > > > > Right now several aspects are to be decided: > > > > 1. particular extention mehanism (POJO interface implementations > > ("Hive-style"), or Spring-Integration, etc) > > 2. whether only one or multiple hooks could be configured at same time > > 3. execution model: whether they should run synchronously, or > > asynchronously; sequentially, or in parallel > > > > Ticket already has some discussion going, so inviting everyone to Jira > > ticket, to avoid having same conversation in two places. > > >
