I have been working on a proposal for adding support for timers to the Apache Beam portability APIs.
The synopsis is to model timers as PCollections. This allows us to treat timers as just another type of data that is transmitted/received by a Runner during execution and leverage all the work that went into those APIs and implementations. For further details, please take a look this doc[1]. 1: https://s.apache.org/beam-portability-timers