public Mono<TurmsNotification> handleServiceRequest(
            UserSession session,
            ServiceRequest serviceRequest) {
        try {
            // Update request timestamp
            session.setLastRequestTimestampToNow();
            // Forward request
            serviceRequest.getTurmsRequestBuffer()
                    .retain();
            HandleServiceRequest request = new HandleServiceRequest(serviceRequest);
            return node.getRpcService()
                    .requestResponse(request)
                    .defaultIfEmpty(REQUEST_RESPONSE_NO_CONTENT)
                    .map(response -> getNotificationFromResponse(response,
                            serviceRequest.getRequestId()));
        } catch (Exception e) {
            return Mono.error(e);
        } finally {
            serviceRequest.getTurmsRequestBuffer()
                    .release();
        }
    }
@return a response to the request.
@implNote The method ensures turmsRequestBuffer in serviceRequest will be released by 1
turms-gateway/src/main/java/im/turms/gateway/domain/servicerequest/service/ServiceRequestService.java