Hi,
PR [1] (issue [2]) went though code review, and according to [3] seems
to me to be ready for merge. Current state of the implementation is that
it is supported only for direct runner, legacy flink runner (batch and
streaming) and legacy spark (batch). It could be supported by all other
(streaming) runners using StatefulDoFnRunner, provided the runner can
make guarantees about ordering of timer firings (which is unfortunately
the case only for legacy flink and direct runner, at least for now -
related issues are mentioned multiple times on other threads).
Implementation for other batch runners should be as straightforward as
adding sorting by event timestamp before stateful dofn (in case where
the runner doesn't sort already - e.g. Dataflow - in which case the
annotation can be simply ignored - hence support for batch Dataflow
seems to be a no-op).
There has been some slight controversy about this feature, but current
feature proposing and implementing guidelines do not cover how to
resolve those, so I'm using this opportunity to let the community know,
that there is a plan to merge this feature, unless there is some veto
(please provide specific reasons for that in that case). The plan is to
merge this in the second part of next week, unless there is a veto.
Thanks,
Jan
[1] https://github.com/apache/beam/pull/8774
[2] https://issues.apache.org/jira/browse/BEAM-8550
[3] https://beam.apache.org/contribute/committer-guide/