@Override
  public void toData(DataOutput dop,
      SerializationContext context) throws IOException {
    KnownVersion version = StaticSerialization.getVersionForDataStream(dop);
    // if we are sending to old clients we need to reserialize the ID
    // using the client's version to ensure it gets the proper on-wire form
    // of the identifier
    // See GEODE-3072
    if (membershipID != null && version.isOlderThan(KnownVersion.GEODE_1_1_0)) {
      InternalDistributedMember member = getDistributedMember(KnownVersion.GFE_90);
      // reserialize with the client's version so that we write the UUID
      // bytes
      HeapDataOutputStream hdos = new HeapDataOutputStream(KnownVersion.GFE_90);
      member.writeEssentialData(hdos);
      DataSerializer.writeByteArray(hdos.toByteArray(), dop);
    } else {
      DataSerializer.writeByteArray(membershipID, dop);
    }
    DataSerializer.writeByteArray(getOptimizedByteArrayForEventID(threadID, sequenceID),
        dop);
    dop.writeInt(bucketID);
    dop.writeByte(breadcrumbCounter);
  }
Returns a byte[] whose contents are calculated by calling
{@link #getOptimizedByteArrayForEventID}

@since GemFire 5.7
geode-core/src/main/java/org/apache/geode/internal/cache/EventID.java