Skip to content

Commit

Permalink
feat(correlationID): improve documentation (#768)
Browse files Browse the repository at this point in the history
  • Loading branch information
samueldurantes committed Jan 2, 2024
1 parent f669383 commit f22c69e
Showing 1 changed file with 27 additions and 6 deletions.
33 changes: 27 additions & 6 deletions docs/concepts/correlation-id.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,35 @@ tags:
- idempotencia
---

## Correlation ID
Ao lidar com a comunicação entre sistemas distribuídos e serviços em uma aplicação, um aspecto crítico é a identificação e o rastreamento de transações específicas. O Correlation ID (ID de Correlação) desempenha um papel fundamental nesse processo. Vamos explorar a formatação adequada do Correlation ID e fornecer um exemplo prático para ilustrar sua implementação.

Correlation ID é o ID do seu sistema.
## O que é um Correlation ID?

Ele garante que uma requisição não seja processada mais de uma vez.
Um Correlation ID é um identificador exclusivo associado a uma transação ou solicitação específica que percorre todo o ciclo de vida da operação, desde a entrada até a saída do sistema. Isso é essencial para rastrear e correlacionar eventos e logs relacionados a uma determinada transação, facilitando a depuração e o monitoramento de sistemas complexos.

Ao criar uma cobrança Pix você deve enviar um ID único para cada requisição.
## Formato Recomendado

Garantindo que você não cria 2 cobranças para o seu mesmo pedido.
O formato do Correlation ID deve ser consistente e fácil de gerar, interpretar e comparar. Recomenda-se o uso de uma sequência alfanumérica única, como um UUID (Universally Unique Identifier) ou um GUID (Globally Unique Identifier). Esses formatos geralmente possuem uma estrutura semelhante a:

Mesmo que uma cobrança esteja removida, não é possível utilizar o seu correlationID em uma nova cobrança.
Exemplos:
123e4567-e89b-12d3-a456-426655440000

Onde cada caractere é uma representação hexadecimal.

## Exemplo Prático

Vamos considerar um cenário em que estamos desenvolvendo um serviço de pagamento em um ambiente de microserviços, onde várias solicitações são processadas simultaneamente. Ao receber uma solicitação de pagamento, geramos um Correlation ID único para essa transação. Aqui está um exemplo de implementação em Python:

```
import uuid
def process_payment(request):
correlation_id = str(uuid.uuid4())
# Restante do processamento da solicitação com o uso do Correlation ID
```

Neste exemplo, a biblioteca UUID do Python é usada para criar um ID de Correlação único sempre que uma solicitação de pagamento é recebida. Esse ID pode ser incluído em registros de log, cabeçalhos de solicitação e respostas, permitindo o rastreamento da transação em todo o sistema.

## Conclusão

O Correlation ID desempenha um papel crucial na rastreabilidade e no monitoramento de sistemas distribuídos. Ao adotar um formato consistente, como UUID ou GUID, os desenvolvedores podem garantir a eficácia do rastreamento de transações na plataforma da OpenPix, simplificando a depuração e melhorando a visibilidade operacional. Certifique-se de seguir as melhores práticas ao implementar o Correlation ID em sua aplicação.

0 comments on commit f22c69e

Please sign in to comment.