@Override
 public void run(FullStateResponse response) {
   if (response != null) {
     for (Services.Component componentPb : response.getComponentList()) {
       state.update(componentPb.getId(), componentPb.getData(), componentPb.getRevision());
       updateRevision(componentPb.getRevision());
     }
   }
 }
 @Override
 public void updateStateRequest(
     RpcController controller,
     Services.Component request,
     RpcCallback<Services.UpdateComponentResponse> done) {
   boolean success = false;
   if (state.checkRevision(request.getId(), request.getRevision())) {
     success = true;
     long newRevision = revision.incrementAndGet();
     state.forceUpdate(request.getId(), request.getData(), newRevision);
     sendStateToClients(state.getComponent(request.getId()));
   }
   done.run(Services.UpdateComponentResponse.newBuilder().setSuccess(success).build());
 }