public UUID writeContainerPlacementRequestMessage(String deploymentId, String processorId, String destinationHost,
      Duration requestExpiry, long timestamp) {
    Preconditions.checkState(!stopped, "Underlying metadata store not available");
    UUID uuid = UUID.randomUUID();
    ContainerPlacementRequestMessage message =
        new ContainerPlacementRequestMessage(uuid, deploymentId, processorId, destinationHost, requestExpiry,
            timestamp);
    try {
      containerPlacementMessageStore.put(toContainerPlacementMessageKey(message.getUuid(), message.getClass()),
          objectMapper.writeValueAsBytes(message));
      containerPlacementMessageStore.flush();
    } catch (Exception ex) {
      throw new SamzaException(
          String.format("ContainerPlacementRequestMessage might have been not written to metastore %s", message), ex);
    }
    return uuid;
  }
Writes a {@link ContainerPlacementRequestMessage} to the underlying metastore. This method should be used by external controllers
to issue a request to JobCoordinator

@param deploymentId identifier of the deployment
@param processorId logical id of the samza container 0,1,2
@param destinationHost host where the container is desired to move
@param requestExpiry optional per request expiry timeout for requests to cluster manager
@param timestamp timestamp of the request
@return uuid generated for the request
samza-core/src/main/java/org/apache/samza/clustermanager/container/placement/ContainerPlacementMetadataStore.java