async def METHOD_NAME(self, request):
    """ Process a received request by retrieving handler that
    corresponds to the request name.
    """
    try:
        request = loads(request, object_pairs_hook=Request)
        if not isinstance(request, Request):
            raise Exception("Request is not an object")
        name = request.get('name', 'invalid')
        handler = self._requestHandlers.get(name)
        if not handler:
            raise Exception("No request handler for " + name)
        data = request["data"]
        log.info("<<< " + name + dumps(data))
        await handler(self, data)
        unused_keys = request.unseen_keys
        if unused_keys:
            raise NotImplementedError(
                "Backend does not support some properties of the " + name +
                " request: " + ", ".join(unused_keys)
            )
    except (Neo4jError, DriverError, UnsupportedServerProduct,
            BoltError, MarkdAsDriverException) as e:
        await self.write_driver_exc(e)
    except requests.FrontendError as e:
        await self.send_response("FrontendError", {"msg": str(e)})
    except Exception as e:
        if self._exc_stems_from_driver(e):
            await self.write_driver_exc(e)
        else:
            tb = traceback.format_exc()
            log.error(tb)
            await self.send_response("BackendError", {"msg": tb})