Geo: Reliability of system hooks
In Geo, we currently rely on system hooks from the primary to the secondary to trigger events. For example, it's possible this sequence of actions to occur:
- Create new project A
- Delete project A
- Re-create new project A
We have a number of problems:
- The system hook is not guaranteed to be received by the secondary
- The order of execution is not guaranteed
For example, let's say the hook for step 1 does not execute. Step 2 happens, which may be skipped. Then step 3 happens, and we're left with a stale repo.
It feels like we need to have a replication log on the primary to list the sequence of actions that need to be handled on the secondary.
Thoughts, @brodock and @dzaporozhets?