code: private void doMapPut(final Message<JsonObject> message) {
      final String name = message.body().getString("name");
      if (name == null) {
        message.reply(new JsonObject().putString("status", "error").putString("message", "No name specified."));
        return;
      }
  
      final Object key = message.body().getValue("key");
      if (key == null) {
        message.reply(new JsonObject().putString("status", "error").putString("message", "No key specified."));
        return;
      }
  
      final Object value = message.body().getValue("value");
      if (value == null) {
        message.reply(new JsonObject().putString("status", "error").putString("message", "No value specified."));
        return;
      }
  
      context.execute(new Action<Object>() {
        @Override
        public Object perform() {
          return data.getMap(formatKey(name)).put(key, value);
        }
      }, new Handler<AsyncResult<Object>>() {
        @Override
        public void handle(AsyncResult<Object> result) {
          if (result.failed()) {
            message.reply(new JsonObject().putString("status", "error").putString("message", result.cause().getMessage()));
          } else {
            message.reply(new JsonObject().putString("status", "ok").putValue("result", result.result()));
          }
        }
      });
    }
docs: Handles a cluster map put command.