@Retained
  private EntryEventImpl createEvent(InternalRegion r, Operation op, RegionEntry re, Object key,
      Object newValue, Object aCallbackArgument) {
    DistributedMember originator = ((TXId) txId).getMemberId();
    // TODO:ASIF :EventID will not be generated with this constructor . Check if
    // this is correct
    InternalRegion eventRegion = r;
    if (r.isUsedForPartitionedRegionBucket()) {
      eventRegion = r.getPartitionedRegion();
    }
    @Retained
    EntryEventImpl event = EntryEventImpl.create(eventRegion, op, key, newValue, aCallbackArgument, // callbackArg
        true, // originRemote
        originator);
    event.setOldValue(re.getValueInVM(r)); // OFFHEAP: copy into heap cd
    event.setTransactionId(getTransactionId());
    return event;
  }
Do all operations touch internal regions? Returns false if the transaction is empty or if any
events touch non-internal regions.
geode-core/src/main/java/org/apache/geode/internal/cache/TXRmtEvent.java