This PR fixes the supervision strategy of Replication.Supervisor.
We had an issue in production where we lost all events for multiple hours because the
Replication.Publisher crashed, restarted and discarded all events until we forced a full restart.
This is actually expect as Postgres only sends the Relations/Types/etc. messages when the replication connection
is started or on an alter on a specific table.
To fix this instead we changed the replication strategy from one_for_one to one_for_all.
Also update of the README to explain minimally the durable_slot and message_middleware configuration options.
This PR fixes the supervision strategy of
Replication.Supervisor
. We had an issue in production where we lost all events for multiple hours because the Replication.Publisher crashed, restarted and discarded all events until we forced a full restart. This is actually expect as Postgres only sends the Relations/Types/etc. messages when the replication connection is started or on an alter on a specific table. To fix this instead we changed the replication strategy fromone_for_one
toone_for_all
.Also update of the README to explain minimally the
durable_slot
andmessage_middleware
configuration options.