Open Kavindu-Dodan opened 1 year ago
Hey @Kavindu-Dodan, is this issue still relevant? If so, how critical do you think it is to add support for stale flag detection?
@beeme1mr concern highlighted in the issue is still relevant. One option is to set the resolution state to "CACHED" when the underlying source goes offline
@toddbaert what do you think?
I think it makes sense to set it to cached in this case, ya.
We may want to add a STALE to the spec at some point, but until then I think I'd prefer CACHED (even though reasons are free-form).
STALE is now included in the OpenFeature spec.
https://openfeature.dev/specification/types#resolution-details
Requirements
Background
Consider this conversation [1]. Flagd can operate with multiple sync providers. These sync providers push flag configurations which get stored in the internal in-memory
store
[2].There could be occasions where individual providers shutdown, and disconnect for various reasons. For example, for an HTTP flag source, the source can undergo maintenance causing downtime. When this happens, flags stored internally could go stale
Proposal
As highlighted by the conversation [1], it could be beneficial to mark stored flag configurations to be
stale
and set stateReason.STALE
for evaluations. This makes sure flag configurations served by flagd are consistent with their sources.Update Given that we do not have a
stale
sate in existing evaluation reasons [3], a good alternative is to utilizeCACHED
state[1] - https://github.com/open-feature/flagd/pull/297#discussion_r1101875472 [2] - https://github.com/open-feature/flagd/tree/main/pkg/store [3] - https://docs.openfeature.dev/docs/specification/types#resolution-details