public void processHttpRequest(@Observes ProcessHttpRequest event, ServiceLoader services, HttpServletRequest request,
HttpServletResponse response, FilterChain filterChain) throws IOException, ServletException {
// setup responsePayload with temporary serialId before requestPayload is de-serialized
responsePayload.set(new ResponsePayload(RequestPayload.FAILURE_SERIAL_ID));
HttpRequestDeenricher requestDeenricher = services.onlyOne(HttpRequestDeenricher.class);
if (requestDeenricher.isEnriched()) {
RequestPayload p = requestDeenricher.resolvePayload();
long serialId = p.getSerialId();
responsePayload.set(new ResponsePayload(serialId));
response.setHeader(WarpCommons.ENRICHMENT_RESPONSE, Long.toString(serialId));
requestPayload.set(p);
processWarpRequest.fire(new ProcessWarpRequest());