piranha icon indicating copy to clipboard operation
piranha copied to clipboard

Multiple flag support

Open adellhk opened this issue 4 years ago • 2 comments

Hi, in our (Airbnb) codebase we have slightly duplicative but separate experiment and feature flag ("trebuchet") systems. Additionally, we often combine assignments from both of these systems to produce a combined flag ("feature") which we consume in our product code. We're going to consolidate these systems in the future and are interested in using Piranha to with both our current and future experiment infrastructure. Would you be able to advise on the potential cost/benefit ratio we'd be able to see ("benefit": the levels of nesting ("deep cleaning?") that we'd be able to remove in our diffs)?

Here is an example diagram of our experimentation infrastructure https://app.lucidchart.com/publicSegments/view/cc1c7c43-fc9b-4c6e-bf16-86babff5cb65/image.png

adellhk avatar Aug 10 '20 16:08 adellhk

Mostly replying here for visibility, but Adell and I discussed this offline and the best way to proceed seems to be for them to work over a fork of Piranha first to see if that can be adapted to their problem by hard-coding some knowledge of AirBnB's (somewhat involved...) experiment and feature flag architecture. We'll be happy to advise!

Thanks again for the detailed diagram, btw, it was really helpful at understanding just how much your infra differs from some of Piranha's original assumptions.

On the long term, a lot of extra configuration power would need to be added to PiranhaJava, as well as extensive deep cleaning support, before we can handle the above architecture out-of-the-box, without code changes. Unless we see evidence that this solves a problem at Uber, or for multiple potential users of Piranha, we might not have the cycles to prioritize building that support ourselves, and we would also be hesitant of having code that is only useful for the AirBnB use case on mainline Piranha.

However, if there are interesting lessons from the AirBnB fork that can be later brought into mainline Piranha, or specific features that are both significant to that fork effort and broadly useful for Piranha users (e.g. deep cleaning), then we can definitely work on adding them (or porting them back from the fork 🙂 ).

lazaroclapp avatar Aug 13 '20 18:08 lazaroclapp

@adellhk can you try the new polyglot piranha (inside polyglot/piranha) and check if it supports your usecase.

ketkarameya avatar Aug 05 '22 23:08 ketkarameya