@Override
  public boolean equals(Object obj) {
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;

    final DrainMessage other = (DrainMessage) obj;
    if (!super.equals(other)) {
      return false;
    }
    if (!runId.equals(other.runId)) {
      return false;
    }
    return true;
  }
Id used to invalidate DrainMessages between runs. Ties to app.run.id from config.
samza-api/src/main/java/org/apache/samza/system/DrainMessage.java