anchor.diff:          }
         };
         getEventBus().fireEvent( new <%= graph.unsubscribe_started_message.gwt.qualified_event_name %>(<% if graph.instance_root? -%> (<%= repository.entity_by_name(graph.instance_root).primary_key.imit.java_type %>) id <% end %>) );
  +<% if repository.keycloak? -%>
  +      <%= repository.gwt_rpc.qualified_rpc_services_module_name %>.getKeycloak().updateToken( 10, new java.lang.Runnable()
  +      {
  +        @java.lang.Override
  +        public void run()
  +        {
  +          <%= repository.gwt_rpc.qualified_rpc_services_module_name %>.getSessionContext().setAuthenticationToken( <%= repository.gwt_rpc.qualified_rpc_services_module_name %>.getKeycloak().getToken() );
  +    <% end -%>
         _remoteSubscriptionService.unsubscribeFrom<%= graph.name %>( getSessionID()<% if graph.instance_root? -%>, (<%= repository.entity_by_name(graph.instance_root).primary_key.imit.java_type %>) id<% end -%>, callback );
  +<% if repository.keycloak? -%>
  +        }
  +      } );
  +<% end -%>
       }
       else <% end %>
       {
         throw new IllegalStateException();
       }
     }
  +<% if repository.keycloak? -%>
  +
  +  @javax.annotation.Nonnull
  +  @java.lang.Override
  +  protected org.realityforge.gwt.webpoller.client.RequestFactory newRequestFactory()
  +  {
  +    return new ReplicantRequestFactory();
  +  }
  +<% end -%>
   }
  
positive.code:   extends org.realityforge.replicant.client.gwt.<%= repository.imit.poll_replicate_mode? ? 'GwtWebPoller' : 'Gwt' %>DataLoaderService<<%= repository.imit.qualified_gwt_client_session_name %>, <%= repository.imit.qualified_graph_enum_name %>>
    implements <%= repository.imit.qualified_gwt_data_loader_service_interface_name %>
  {
    private final <%= repository.service_by_name(repository.imit.subscription_manager).gwt_rpc.qualified_facade_service_name %> _remoteSubscriptionService;
    @javax.annotation.Nonnull
    private final <%= repository.imit.qualified_gwt_client_session_context_name %> _context;
  
negative.code:         }
        };
        getEventBus().fireEvent( new <%= graph.update_started_message.gwt.qualified_event_name %>(<% if graph.instance_root? -%> getRepository().getByID( <%= repository.entity_by_name(graph.instance_root).imit.qualified_name %>.class, (<%= repository.entity_by_name(graph.instance_root).primary_key.imit.java_type %>) id ) <% end %>) );
  <% if repository.keycloak? -%>
        <%= repository.gwt_rpc.qualified_rpc_services_module_name %>.getKeycloak().updateToken( 10, new java.lang.Runnable()
        {
          @java.lang.Override
          public void run()
          {
            <%= repository.gwt_rpc.qualified_rpc_services_module_name %>.getSessionContext().setAuthenticationToken( <%= repository.gwt_rpc.qualified_rpc_services_module_name %>.getKeycloak().getToken() );
      <% end -%>
        _remoteSubscriptionService.update<%= graph.name %>Subscription( getSessionID()<% if graph.instance_root? -%>, (<%= repository.entity_by_name(graph.instance_root).primary_key.imit.java_type %>) id<% end -%>, (<%= Domgen::Java.java_type(graph.filter_parameter, :gwt, :default) %>) filterParameter, callback );
  <% if repository.keycloak? -%>
          }
        } );
  <% end -%>
      }
      else <% end %>
      {
  