Как правильно передать и обработать X-Request-ID?
Смысл requestId в том, что бы оседлать в различных логах для дальнейшего анализа работы приложения.
Обычно он создаётся как можно раньше, если мы говорим про nginx, то там уже есть (начиная с 1.11.0) переменная $request_id, которую нужно а) писать в лог nginx и б) передавать дальше в PHP (с помощью fastcgi_param). Так же можно отдавать её в http-заголовке клиенту.
Дальше, по хорошему, ваше PHP-приложение во всех своих логах тоже должно сохранять это значение, а так же передавать во все другие сервисы с которыми оно общается (базы данных, другие http-сервера и т.п.).
Я не занимался, но прочел ответ на стаковерфлое
Генерировать уникально. UUID подойдет.
Передавать наверное через квери стринг - тогда этот ид попадет в лог веб-сервера, на случай, если пхп совсем уж упадет еще до запуска обработчика ошибок. Ну, или если такая точность не особо критична, то просто дополнительным полем в джейсон.
Плюс в обработчике ошибок РНР учитывать это значение и добавлять к сообщению об ошибке, записанному в лог.