@Override
    public final O serve(ServiceRequestContext ctx, I req) throws Exception {
        return responseConverter.apply(
                strategy.accept(ctx, req).handleAsync((accept, cause) -> {
                    try {
                        if (cause != null || !accept) {
                            return rejectHandler.handleRejected(unwrap(), ctx, req, cause);
                        }
                        return acceptHandler.handleAccepted(unwrap(), ctx, req);
                    } catch (Exception e) {
                        return Exceptions.throwUnsafely(e);
                    }
                }, ctx.eventLoop()));
    }
Creates a new instance that decorates the specified {@link Service}.
core/src/main/java/com/linecorp/armeria/server/throttling/AbstractThrottlingService.java