intermediate

Correlation ID

Прокидывайте идентификаторы запроса или workflow через frontend, API, очередь и worker, чтобы события можно было связать.

Correlation ID (request ID, trace ID или workflow ID) связывает строки логов, exemplars метрик и тикеты поддержки с одним пользовательским путём. Прокидывайте его от edge через API, очереди, workers и callbacks.

					// middleware
const requestId = req.headers['x-request-id'] ?? crypto.randomUUID();
res.setHeader('x-request-id', requestId);
req.log = logger.child({ requestId });

// enqueue
await queue.publish({ ...payload, requestId });
				

| Граница | Механизм | |---------|----------| | HTTP | `x-request-id`, W3C `traceparent` | | Очередь | Атрибуты / headers сообщения | | Frontend | ID из ответа BFF в client error reports |

Генерируйте на trust boundary, если нет; не пересоздавайте mid-flow, если не начинаете новую логическую операцию.

На интервью: где создавать ID, имена headers, async после ответа HTTP и связка Sentry на клиенте с backend-логами.

Типовые ошибки: ID теряется на границе очереди; разные имена headers; ID в логах без индексации.

Компромисс — дисциплина propagation против чуть больших payload и сложности middleware.

Чеклист:

  • Создать или принять ID на edge.
  • Propagation через sync и async.
  • ID в client error reports.
  • Индексация correlation-полей в хранилищах логов.