code: def process_on_event(self):
          
          if not self._queue:
              self._active = False
              return
          # Get unique event types in the queue
          events = list(OrderedDict([(event.event_name, event)
                                     for event in self._queue]).values())
          self._queue = []
  
          # Process event types
          for event in events:
              msg = {}
              for attr, path in self.attributes.items():
                  model_obj = self.plot_handles.get(self.models[0])
                  msg[attr] = self.resolve_attr_spec(path, event, model_obj)
              self.on_msg(msg)
          self.plot.document.add_timeout_callback(self.process_on_event, 50)
docs: Trigger callback change event and triggering corresponding streams.