Github user justinleet commented on the issue:
https://github.com/apache/metron/pull/970
@nickwallen My main concern re: pluggability is for a lot of this stuff,
it's going to be very pretty specific to the fact that (right now) we're using
Lucene stores (and it might be worth renaming some of the base classes to
things like `AbstractLuceneMetaAlertDao` to make that more clear). The entire
denormalization implementation is directly because of the limitations /
strengths of Lucene stores. A store that implements more familiar joins would
be totally different (and probably much, much simpler) than the ES and Solr
impls.
I agree that refactoring is extremely nice to improve testability, but I'm
not sure what the benefit of making things more extensively pluggable (beyond
splitting the DAO up into the Search / Update / subsets + your example of
calculating metascores is good). Are you more interested into breaking things
out into more classes than that, just breaking apart functions more so they're
more easily tested, some combination of both?
I guess the main question is: "Is breaking the meta alert dao into the
various sub functions (Search, Update, etc.) + pulling out the calculate logic
+ at least a refactoring pass for testability a good first step in moving this
forward?" I want to make sure there's at least a clear next step before doing a
lot of adjusting, even if the exact final state might shift a bit.
---