title: How do I fire downstream onEventTime() method when using BroadcastState pattern?
body: <p>I am using a pipeline as follows:</p>
  
  <pre><code>inputStream.keyBy(&lt;keyMapper&gt;).
  connect(configurationBroadcastStream).
  process(new KeyedBroadcastProcessFunction&lt;...&gt;() {
       processBroadcastElement(...){...}
       processElement(...){...}
       }).
  keyBy(&lt;keyMapper&gt;). // have to key output of process() again
  window(DynamicEventTimeSessionWindow.withDynamicGap(...)).
  trigger(new CustomTrigger()).
  process(new CustomProcessWindowFn())
  </code></pre>
  
  <p>In the <code>CustomTrigger()</code>, I am registering an <code>eventTimeTimer()</code> that will fire to indicate the end of my window. The problem is that the <code>onEventTime()</code> method is <strong>never</strong> invoked, even when:</p>
  
  <ul>
  <li>I have ensured <code>env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime);</code></li>
  <li>Using an <code>ascendingTimestampExtractor()</code>, I have sent an event that has definitely pushed the watermark sufficiently far enough that the <code>eventTimeTimer()</code> should fire. </li>
  </ul>
  
  <p>What am I missing? Does it have something to do with missing watermarks and the <code>onTimer()</code> method of the <code>KeyedBroadcastProcessFunction</code>? I suspect so because of David Anderson's comment in <a href="https://stackoverflow.com/questions/59306916/using-broadcast-state-to-force-window-closure-using-fake-messages">this</a>
  answer:</p>
  
  <blockquote>
    <p>add special fake watermarks for the non-broadcast stream (set to
    Watermark.MAX_WATERMARK)</p>
  </blockquote>
  
  <p>and the fact that I have not implemented a method named on<strong>Timer</strong>. However, if this indeed is the case, I don't understand how that would be relevant to a downstream Trigger. Thanks.</p>
  
  <p>Edit: a full example of this scenario is <a href="https://gist.github.com/manasIU/1777c9c99e195a409441815559094b49" rel="nofollow noreferrer">here</a>.</p>