Flexible Feature Control at Instagram
engineering.instagram.com
Flexible Feature Control at Instagram
1–10 of 12 posts
Re: Flexible Feature Control at Instagram
#2Re: Flexible Feature Control at Instagram
#3I was part of the team that designed this. AMA.
Re: Flexible Feature Control at Instagram
#4I was part of the team that designed this. AMA.
Re: Flexible Feature Control at Instagram
#5I was part of the team that designed this. AMA.
Re: Flexible Feature Control at Instagram
#6Re: Flexible Feature Control at Instagram
#7I was part of the team that designed this. AMA.
Re: Flexible Feature Control at Instagram
#8I was part of the team that designed this. AMA.
How does this work in a developers local environment? Does it hook into the same central service or do you need re-define the gate in all environments?
For testing, we have context managers that let you do "with temporary_gate('gate_name', value)", so there's not much boilerplate in overriding/testing your code within a gate constraint.
Re: Flexible Feature Control at Instagram
#9I was part of the team that designed this. AMA.
I'm not clear from the post, is this used only to gate features in servers or is this used to gate features in the mobile clients as well? If it's used in the mobile clients, how is that done (in particular, checking looks to be synchronous, but would obviously need to be async to work)
Re: Flexible Feature Control at Instagram
#10I was part of the team that designed this. AMA.
if A allow, else continue to next rule
if B deny, else continue to next rule
if C allow, else continue to next rule
deny all
For example, ufw rules have that form.
I see a few advantages compared to Boolean operators:
1. Easier to diff and version control.
2. Easier to build UI for, for example, to show which rule fails for a particular user.
3. Simpler to implement, no recursion in the DSL.
4. Arguably simpler to use.
5. Immediately obvious how short-circuiting works.
Why did you choose to go with Boolean operators rather than rules?