private void processMessage(final String path, final String messageId) {
Futures.addCallback(zkClient.getData(path), new FutureCallback<NodeData>() {
@Override
public void onSuccess(NodeData result) {
Message message = MessageCodec.decode(result.getData());
if (message == null) {
LOG.error("Failed to decode message for " + messageId + " in " + path);
listenFailure(zkClient.delete(path, result.getStat().getVersion()));
return;
}