Skip to main content

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:

  1. 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 RequestId permite identificar exatamente qual requisição foi afetada e ajuda a identificar logs ou eventos associados a ela.
  2. 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 mesmo CorrelationId, 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.