cpursley / walex

Postgres change events (CDC) in Elixir
MIT License
276 stars 14 forks source link

Durable slot #62

Closed DaemonSnake closed 3 months ago

DaemonSnake commented 3 months ago

adds support for non-temporary replication slots

When the slot is restarted, it will start back at the last wal_end+1 that walex returned in the keep-alive reply to postgres. Transactions processed between the last keep-alive and the interruption of walex will be replayed.

If event replay is problematic, the end-user must implement a way to mark LSN/transactions as processed to avoid re-processing.

Also event loss is possible currently in this situation:

we made another PR to address this and will submit it shortly

cpursley commented 3 months ago

This is an awesome and very welcome improvement @DaemonSnake!

Let me know if you have other PRs planned - I need to cut a new release soon.

cpursley commented 3 months ago

@DaemonSnake did you have any more changes you wanted to get in before I create a new release?

DaemonSnake commented 3 months ago

@cpursley oh yes, will submit it today. Sorry for the late reply. Thanks you so much for the quick review and merge by the way 😁