Generally when a transaction commits in PostgreSQL, then immediately the logical decoding process will start and convert the WAL data into steam of data for consumers. My understanding is
Commit » WAL » Decode process » Publication to filter the tables » Slots to store the data
What I'm trying to understand is:
- Decode process - This will decode the WAL whether your consumer is up or down, just decode and push it to Slots. OR if this is wrong, then PostgreSQL will not do decode and wait until the consumer will up.
- Slots are the storage area that holds the decoded data OR it'll just maintain the state.
- Decode process - I have enabled logical replication for a specific table. But on the other table, I did a bulk commit. This change also should be part of the decode process, it'll decode the data and then it'll check on the publication. If the table is not there, then simply leave it and decode the next event. Is it correct?