MTB ESB Documentation

Identity, tracing и idempotency

Разделение платформенных идентификаторов и правила их передачи.

Identity, tracing и idempotency

Платформа использует разные идентификаторы для разных задач. Их нельзя подменять одним универсальным correlation ID.

ЗначениеНазначениеИсточник
X-Consumer-IDКакая система инициировала запросWSO2 из доверенной identity
X-External-Request-IDКонкретная попытка внешнего вызоваConsumer; fallback может создать WSO2
traceparentТехническая distributed traceConsumer или WSO2
Idempotency-KeyОдно бизнес-намерениеConsumer

Consumer identity

Внешний header X-Consumer-ID не является доверенным сам по себе. Каноническое значение определяется из application, credentials или token claims и передаётся дальше платформой.

External request ID

Каждая новая попытка вызова получает отдельный ID. Он используется для поиска конкретного request/response и расследования transport retry.

Trace context

Платформа использует W3C traceparent. Валидный входной context продолжается; при отсутствии WSO2 создаёт новый. Все ключевые компоненты передают и логируют trace context.

Idempotency

Одинаковое бизнес-намерение повторяется с тем же Idempotency-Key. Минимальный scope:

(consumer_id, idempotency_key)

Повтор не должен создавать вторую бизнес-операцию. Срок хранения idempotency record задаётся policy конкретного API; упомянутое в черновиках окно 24 часа не является универсальным без утверждённого контракта.

Trace не обеспечивает idempotency

Новый trace может относиться к повтору той же операции, а один trace — содержать множество внутренних вызовов. Для дедупликации используется отдельный business key.

Logging

Структурированный log event включает environment, component, API/operation, Consumer ID, External Request ID, trace ID, result и duration. Payload логируется только по утверждённым правилам masking и retention.

On this page