@Test
  public void testLazyRegistrationOfInstantiators() throws Exception {
    try {
      PORT1 = initServerCache(server1);
      PORT2 = initServerCache(server2);

      unregisterInstantiatorsInAllVMs();

      Wait.pause(3000);

      createClientCache(NetworkUtils.getServerHostName(server1.getHost()), PORT1);

      client2.invoke(() -> InstantiatorPropagationDUnitTest.createClientCache(
          NetworkUtils.getServerHostName(server1.getHost()), PORT2));

      Wait.pause(3000);
      unregisterInstantiatorsInAllVMs();

      assertTestObject20NotLoaded();
      server1.invoke(InstantiatorPropagationDUnitTest::assertTestObject20NotLoaded);
      server2.invoke(InstantiatorPropagationDUnitTest::assertTestObject20NotLoaded);
      client2.invoke(InstantiatorPropagationDUnitTest::assertTestObject20NotLoaded);

      registerTestObject20();
      Wait.pause(5000);
      assertTestObject20Loaded();
      server1.invoke(InstantiatorPropagationDUnitTest::assertTestObject20Loaded);
      // server2.invoke(() -> InstantiatorPropagationDUnitTest.assertTestObject20Loaded()); //
      // classes are not initialized after loading in p2p path
      client2.invoke(InstantiatorPropagationDUnitTest::assertTestObject20NotLoaded);
    } finally {
      unregisterInstantiatorsInAllVMs();
      disconnectAllFromDS();
    }
  }
Test's same eventId being same for the Instantiators at all clients & servers
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/InstantiatorPropagationDUnitTest.java