Upon restart PostgreSQL connector takes the LSN stored in offets and filters out all changes coming from database with lower LSN. The reason is that database can re-send events already seen by Debezium.
The problem is that with parallel transactions it can happen that they are not stored in order of their LSNs. Genrally the tx that starts first has lower LSN but the one that is committed first is first written into the replication slot.
This can be a problem in connector restart when we can have higher LSN already stored in the offset but a tx with lower LSN can still arrive.