RequestId e CorrelationId | Arquitetura
- RequestId e CorrelationId | Arquitetura
No contexto de desenvolvimento de sistemas distribuídos, especialmente em APIs e serviços, RequestId e CorrelationId são identificadores usados para rastrear requisições e eventos, mas têm finalidades e contextos diferentes:
-
RequestId:
- Representa um identificador único para uma requisição individual em um sistema.
- É gerado pelo sistema que inicia a requisição (como um cliente ou o primeiro serviço de uma cadeia de chamadas) e permite rastrear essa requisição específica.
- Cada vez que uma nova requisição é feita, um novo
RequestIdé gerado. - Sua principal finalidade é facilitar o rastreamento de uma requisição única no sistema. Se uma requisição falha ou precisa ser depurada, o
RequestIdpermite identificar exatamente qual requisição foi afetada e ajuda a identificar logs ou eventos associados a ela.
-
CorrelationId:
- Representa um identificador único para correlacionar múltiplas requisições relacionadas entre si.
- É utilizado em cenários onde uma requisição inicial desencadeia uma cadeia de requisições entre múltiplos serviços. Todos os serviços que participam dessa cadeia compartilham o mesmo
CorrelationId. - Ajuda a rastrear o fluxo completo de uma operação complexa que envolve várias chamadas de serviço, tornando possível seguir o ciclo de vida completo da operação em logs e registros distribuídos.
- O
CorrelationIdé essencial para observabilidade e diagnóstico em arquiteturas de microsserviços, pois ele permite visualizar a sequência completa de chamadas relacionadas a uma mesma operação, mesmo que elas ocorram em serviços diferentes.
Exemplo Prático
Imagine um cenário em que um cliente faz um pedido em um sistema de e-commerce:
- O cliente inicia uma requisição de pedido. Um
RequestIdé gerado para essa requisição de "criação de pedido". - Esse pedido aciona serviços internos como inventário, pagamento e notificação. Cada uma dessas requisições pode ter seu próprio
RequestId, mas todas compartilham o mesmoCorrelationId, permitindo que se rastreie toda a jornada de uma única operação (pedido) através de múltiplos serviços.
Em Resumo
- RequestId: Identifica uma requisição única.
- CorrelationId: Identifica o contexto ou operação que agrupa múltiplas requisições relacionadas.
Esses identificadores em conjunto proporcionam rastreabilidade e visibilidade completas, facilitando a análise e solução de problemas em sistemas complexos e distribuídos.