Reduce usage of Consul. #47
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This works to drastically reduce our dependency on Consul for basic cluster management.
Outside of configuration management, the only thing we leverage consul for is to set an initialization flag that lets future members coming up know whether the cluster exists or not. If the flag is not set, then it's fairly safe to assume that it should register itself as primary. It's possible there's a race condition here, but given how PG provisioning works in Fly this shouldn't be an issue.
Given how we use the initialization flag, clusters will not be able to horizontally scale in the event consul goes down. However, everything aside from configuration management will continue to work normally.
Things this PR does not address
We still need to identify and fence a failed primary coming back from the dead.