open-feature/flagd

[FEATURE] Improve evaluation performance

Open

#1,453 opened on Nov 20, 2024

 (8 comments) (1 reaction) (1 assignee)Go (118 forks)github user discovery
enhancementgood first issuehelp wanted

Repository metrics

Stars
 (925 stars)
PR merge metrics
 (Avg merge 3d 9h) (8 merged PRs in 30d)

Description

Overview

The flag evaluation engine in flagd leverages JsonLogic to provide a powerful and flexible rule-based serializable logic. The flagd binary and in-process Go flagd provider use this library. To improve flag evaluation performance and reduce computational overhead, the ruleset should be pre-decoded when a flag set is loaded (or updated). This removes the need to parse the JsonLogic structure for each evaluation.

### Tasks
- [ ] [Add support for pre-decoded rules in the Go JsonLogic SDK](https://github.com/diegoholiveira/jsonlogic/issues/88).
- [ ] Update flagd to use the pre-decoded rules.
- [ ] 🥇 Bonus points for running a performance test to measure the improvements

This should be a non-breaking change in the Go JsonLogic SDK.

Contributor guide