anchor.diff:      {
         session.setInterestedIn<%= graph.name %>( false );
   <% end -%>
  +      accumulator.addAction( session, new org.realityforge.replicant.server.ChannelAction( new org.realityforge.replicant.server.ChannelDescriptor( <%= repository.imit.qualified_graph_enum_name %>.<%= Domgen::Naming.uppercase_constantize(graph.name) %>.ordinal(), <%= graph.instance_root? ? 'id' : 'null' %> ), org.realityforge.replicant.server.ChannelAction.Action.REMOVE, null ) );
  +    }
  +  }
  +
  +  private void doUnsubscribeFrom<%= graph.name %>( @javax.annotation.Nonnull final <%= repository.imit.qualified_session_name %> session<%= graph.instance_root? ? ", #{repository.entity_by_name(graph.instance_root).primary_key.imit.java_type} id" : '' %> )
  +  {
  +<% if graph.instance_root? -%>
  +    if ( session.is<%= graph.name %>Interesting( id ) )
  +    {
  +      session.deregisterInterestIn<%= graph.name %>( id );
  +<% else -%>
  +    if ( session.isInterestedIn<%= graph.name %>() )
  +    {
  +      session.setInterestedIn<%= graph.name %>( false );
  +<% end -%>
         org.realityforge.replicant.server.ee.EntityMessageCacheUtil.getSessionChanges().addAction( new org.realityforge.replicant.server.ChannelAction( new org.realityforge.replicant.server.ChannelDescriptor( <%= repository.imit.qualified_graph_enum_name %>.<%= Domgen::Naming.uppercase_constantize(graph.name) %>.ordinal(), <%= graph.instance_root? ? 'id' : 'null' %> ), org.realityforge.replicant.server.ChannelAction.Action.REMOVE, null ) );
       }
     }
  
positive.code:     try
      {
        final java.util.Collection<<%= repository.imit.qualified_session_name %>> values = sessions.values();
        for ( final org.realityforge.replicant.server.EntityMessage message : messages )
        {
          final java.util.Map<String, java.io.Serializable> routingKeys = message.getRoutingKeys();
  
negative.code:     doUnsubscribeFrom<%= graph.name %>( session<%= pk_accessor.size == 0 ? '' : ", #{pk_accessor}" %> );
    }
  
    private void doUnsubscribeFrom<%= graph.name %>( @javax.annotation.Nonnull final org.realityforge.replicant.server.ChangeAccumulator accumulator, @javax.annotation.Nonnull final <%= repository.imit.qualified_session_name %> session<%= graph.instance_root? ? ", #{repository.entity_by_name(graph.instance_root).primary_key.imit.java_type} id" : '' %> )
    {
  <% if graph.instance_root? -%>
      if ( session.is<%= graph.name %>Interesting( id ) )
  