@Override
 public NotificationResult findNotificationsAfterEpoch(
     CallingContext context, Long lastEpochSeen) {
   NotificationResult result = new NotificationResult(currentEpoch);
   for (long epoch = lastEpochSeen; epoch < currentEpoch; epoch++) {
     NotificationInfo info = notifications.get(epoch);
     String originKernelId = info.getKernelId();
     // prevent kernel from receiving notifications from itself, which can cause race conditions
     if (originKernelId != null && originKernelId.equals(context.getContext())) {
       continue;
     }
     result.addId(info.getId());
   }
   return result;
 }