@Override
    @SuppressWarnings("FunctionalInterfaceMethodChanged")
    default @Nullable Result apply(@NonNull Context context) {
        try {
            return this.handle(context);
        } catch (final Exception exception) {
            throw new PipelineException(exception);
        }
    }
Provide a response for the given context. If the service implementation cannot provide a
response for the given context, it should return {@code null}

@param context Context used in the generation of the response
@return Response. If the response isn't {@code null}, the next service in the service chain
        will get to act on the context. Otherwise the execution halts, and the provided response is the
        final response.
@throws Exception Any exception that occurs during the handling can be thrown, and will be
                  wrapped by a {@link PipelineException}
cloud-services/src/main/java/org/incendo/cloud/services/type/Service.java