Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: flagd in-process provider #412

Merged
merged 32 commits into from
Sep 7, 2023

Conversation

Kavindu-Dodan
Copy link
Collaborator

@Kavindu-Dodan Kavindu-Dodan commented Sep 1, 2023

This PR

Completes first set of tasks proposed through #411

Please review with checkout as this contains refactoring + implementation of the in-process resolver for flagd.

Design

Consider the following diagram for architecture,

image

Highlights

  • No API changes, hence no breaking changes
  • Resolver selection through builder option,
       // This builds a flagd provider with in-memory resolving
        new FlagdProvider(
                FlagdOptions.builder()
                        .resolverType(Config.ResolverType.inProcess)
                        .build());
  • Extensibility through layering and contracts
  • Feature parity with grpc evaluator (i.e - Eventing, targeting rules and matching evaluation payloads)

@Kavindu-Dodan Kavindu-Dodan force-pushed the feat/flagd-in-process branch 3 times, most recently from 7598b4c to 6f29db3 Compare September 4, 2023 22:08
@Kavindu-Dodan Kavindu-Dodan marked this pull request as ready for review September 4, 2023 22:27
@Kavindu-Dodan Kavindu-Dodan requested a review from a team as a code owner September 4, 2023 22:27
@beeme1mr beeme1mr changed the title feat: flagd in-process prociess provider feat: flagd in-process process provider Sep 5, 2023
@Kavindu-Dodan Kavindu-Dodan force-pushed the feat/flagd-in-process branch 7 times, most recently from b784edb to f11f380 Compare September 5, 2023 22:08
Copy link
Member

@thisthat thisthat left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The implementation LGTM, great work @Kavindu-Dodan 👏
I suggest adding some unit tests for the gRPC Stream Handler/Connector and the FlagStore.
Please, also adapt the main readme with the new usage options :) I suggest also posting there (or in another doc) the nice diagram that you attached to this PR

Kavindu-Dodan and others added 16 commits September 7, 2023 11:13
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
…s/flagd/resolver/process/model/FlagParser.java

Co-authored-by: Giovanni Liva <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>

fix test harness and review changes
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Kavindu-Dodan and others added 9 commits September 7, 2023 12:49
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
…s/flagd/resolver/process/storage/FlagStoreTest.java

Co-authored-by: Giovanni Liva <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
…s/flagd/resolver/process/InProcessResolverTest.java

Co-authored-by: Giovanni Liva <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
…s/flagd/resolver/process/storage/connector/grpc/GrpcStreamConnectorTest.java

Co-authored-by: Giovanni Liva <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Co-authored-by: Todd Baert <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
…s/flagd/resolver/process/model/FlagParserTest.java

Co-authored-by: Giovanni Liva <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
Signed-off-by: Kavindu Dodanduwa <[email protected]>
@Kavindu-Dodan Kavindu-Dodan merged commit 7accd1e into open-feature:main Sep 7, 2023
DBlanchard88 pushed a commit to DBlanchard88/java-sdk-contrib that referenced this pull request Apr 29, 2024
…ure#412)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants