Hello Team,
I had filed FALCON-965 to open up life cycle stage implementations and
starting a discuss thread as per @Venkatesh's request.
As it stands Falcon supports replication,
generation and eviction lifecycle stages and plans to support more. This
however assumes a certain way of implementing a life cycle function and
changes to these implementation aren't easy, as they are not open for
easy extension. This proposed feature is open this up in Falcon.
Here is a proposal on how things can possibly be:
List of life cycles that Falcon supports would be well known and not
extensibleDependency between life cycles are coded up in the falcon server
and not necessarily extensible. (In short adding a new life cycle still
requires changes in Falcon)Each Lifecycle in falcon advertises an
implementation interface and
minimum configuration interface (for ex. Eviction should expose a way
to retrieve the configured time limit for which data will be available
for other life cycle stages to validate. There is no point in having a
process consume last 24 instances of a feed, when the retention will
retain only 4 instances)Similar to FALCON-634,
life cycle implementation can be dropped in as long as the
implementation interface and configuration interfaces are adhered to.
Please share your comments on
1. Does it make sense to open up the life cycle implementations
2. If so, Does the proposal make sense as is or would you suggest any
improvement or modification
3. Any alternate proposal to achieve the same if you agree with the ask
Regards
Srikanth Sundarrajan