Dados

LSN: o marcador de posição do WAL

O Log Sequence Number ajuda o PostgreSQL e consumidores de replicação lógica a saberem de onde continuar no fluxo do WAL.

Valdiney França · 15 set 2026 · 3 min de leitura

Como o PostgreSQL sabe exatamente de onde continuar uma leitura do WAL? Uma das peças desse quebra-cabeça é o LSN (Log Sequence Number).

Uma forma simples de entender o conceito é imaginar o WAL (Write-Ahead Log) como um grande diário onde o PostgreSQL registra as alterações realizadas no banco. Nesse diário, o LSN funciona como um marcador de posição dentro do fluxo do WAL.

Em vez de pensar nele simplesmente como "o número de uma linha", podemos imaginá-lo como um endereço que indica uma determinada posição no fluxo de registros do WAL. E isso se torna especialmente interessante quando falamos de CDC (Change Data Capture).

Imagine que um consumidor esteja recebendo alterações por meio da replicação lógica e, por algum motivo, seja interrompido. Ao manter o controle da posição que já foi processada, ele pode continuar a partir do ponto adequado quando voltar a funcionar, em vez de precisar começar tudo novamente.

É esse conceito de posição no fluxo que ajuda a tornar o processamento incremental muito mais confiável.

E aqui começa a aparecer uma sequência interessante:

WAL -> LSN -> Logical Decoding -> Replication Slot -> CDC

Cada conceito resolve uma parte diferente do problema. Agora quero entender melhor os próximos dois: Logical Decoding e Replication Slots.

Aos poucos, a arquitetura que inicialmente parecia ser apenas "Debezium + Kafka" começa a fazer muito mais sentido quando olhamos para o que acontece dentro do próprio PostgreSQL.

#PostgreSQL #CDC #WAL #LSN #LogicalDecoding #DataEngineering #SoftwareEngineering #Backend #ArquiteturaDeSoftware #AprendizadoContínuo #OpenSource #DesenvolvimentoDeSoftware