airbnb / airbnb/synapse

Be smarter about initial reconfigure

Open
#78 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
Ruby
Stars
2.1k
Forks
248
PR merge metrics
No merged PRs in 30d

Description

Synapse is designed to re-write the haproxy config & reload haproxy when it starts (set [here](https://github.com/airbnb/synapse/blob/master/lib/synapse.rb#L24-25)).

This means that any time synapse is restarted there is a period between when it starts and when the watcher first registers where the defaults are being used (and if there are no defaults you will return 503's from haproxy).

I can see why you would want an initial reconfigure so that any time you restart synapse you know any changes unrelated to backends will get picked up, but it seems like it should be smarter and wait until all watchers have checked in once before doing its initial reconfiguration. I'm happy to submit a PR if this sounds reasonable.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in lib/synapse.rb at lines 24-25, then trace the watcher registration and initial HAProxy reconfiguration flow. Confirm the current startup sequence and define completion as delaying the initial reconfiguration until all watchers have checked in once, while preserving updates unrelated to backends.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
backend, networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.