Thanks Reza. Does this mean having a global window and triggering for every new event? The use case I was mentioning was a throttle kind of application using the key based state. Events flow though and the keyed state is increased by 1 but once a particular key reaches a certain max count, the newer events are skipped until the state is cleared after the throttle period. I am looking at something similar to a stateful keyed parDo so that all events of same key go to the same worker (assuming state is local to worker as in flink)
On Thu, Jan 26, 2023 at 8:13 AM Reza Ardeshir Rokni <raro...@gmail.com> wrote: > Hi, > > For these types of use cases, folks will generally make use of the Global > Window which is -/+ inf and Timers. Some key considerations when using the > Global Window: > > 1- GC is not done by the system as the window will never close. > 2- There are no order guarantees, so you will often need to make use of > looping > timer > <https://urldefense.com/v3/__https://beam.apache.org/blog/looping-timers/__;!!Op6eflyXZCqGR5I!H02HPpgqudbKt18Xo0IC7a0LSrWD3znlzIBATW1EMItF4iCSrhnLM-ziCgsZd14hFgKlQEKBi4GQULrH$> > patterns. > > Cheers > > Reza > > On Thu, 26 Jan 2023 at 00:09, Vignesh Kumar Kathiresan via user < > user@beam.apache.org> wrote: > >> Hi Community, >> >> I am new to beam coming from flink. In flink state can be scoped to only >> key. A datasteam(similar to Pcollections in beam) can be converted to a >> keyed data stream. And a process function on this keyed stream can access >> state scoped to only key. It also has state scoped to key+window. In beam >> though I see only state scoped to key+window combination. Is my >> understanding correct? How are use cases using state scoped to key without >> windows solved in beam. >> >> thanks >> Vignesh >> >