Write a stateful Beam DoFn using state and timers

domain: data-engineering · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. Annotate your DoFn with @StateId declarations using StateSpec; choose the appropriate state cell type (ValueState, BagState, CombiningState, MapState) based on your access pattern.
  2. Annotate timer declarations with @TimerId and TimerSpec, specifying event-time or processing-time domain.
  3. In processElement, read and write state via the injected StateT parameter and set timers via the TimerT parameter.
  4. Implement the @OnTimer method annotated with the same timer id to handle expiry logic such as flushing buffered state.
  5. Apply the stateful DoFn on a key-value PCollection using .apply(ParDo.of(new MyStatefulDoFn())); state is partitioned per key and per window.

Known gotchas

Give your agent this knowledge — and 15,600+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans