Skip to content

Commit 1c86765

Browse files
chore: Revamp the readme (#45)
Signed-off-by: Thomas Poignant <[email protected]> Co-authored-by: Lukas Reining <[email protected]>
1 parent b762cb0 commit 1c86765

File tree

1 file changed

+42
-39
lines changed

1 file changed

+42
-39
lines changed

README.md

Lines changed: 42 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -9,46 +9,49 @@
99
</picture>
1010
</p>
1111

12-
![WIP](https://img.shields.io/badge/status-WIP-red)
13-
:warning: __OpenFeature Remote Evaluation Protocol is a WIP initiative, expect breaking changes__ :warning:
14-
12+
![Protocol version](https://img.shields.io/github/v/release/openfeature/protocol)
1513

1614
## What is OFREP?
17-
OpenFeature Remote Flag Evaluation Protocol, is an API specification for feature flagging that allows the use of generic providers to connect to any feature flag management systems that supports the protocol.
18-
19-
20-
## Goals
21-
- develop a client/server feature flag evaluation protocol:
22-
- define payloads sent between client and server
23-
- define the resources and functions available on the server
24-
- define the supported transports and encoding methods
25-
- define mechanisms for metadata delivery and transport configuration (headers, etc)
26-
- develop production-ready reference implementation
27-
- compliant server
28-
- compliant client (provider)
29-
- highly configurable and modular
30-
- compatible with any server implementation
31-
32-
## Non-Goals
33-
34-
- defining a schema for the definition or storage of feature flags
35-
- defining an expression language for feature flag targeting rules
36-
37-
## Design Principles
38-
39-
We value the following:
40-
- adherence to OpenFeature semantics
41-
- maximum compatibility and ease-of-adoption for existing solutions
42-
- minimum traffic and payload size
43-
- low latency of flag evaluations
44-
- portability and interoperability between runtimes and languages (should be usable in web, mobile devices, and server)
45-
- minimum reliance on dependencies (leverage ubiquitous, native transports and encodings where possible)
46-
47-
## Providers
48-
- [GO](https://github.com/open-feature/go-sdk-contrib/tree/main/providers/ofrep)
49-
- [JS Server](https://github.com/open-feature/js-sdk-contrib/tree/main/libs/providers/ofrep)
50-
- [JS Web](https://github.com/open-feature/js-sdk-contrib/tree/main/libs/providers/ofrep-web)
51-
15+
**OpenFeature Remote Flag Evaluation Protocol**, is an API specification for feature flagging that allows the use of generic providers to connect to any feature flag management systems that supports the protocol.
16+
17+
## Goal
18+
The primary goal of the OpenFeature Remote Evaluation Protocol (OFREP) is to establish a standardized, vendor-agnostic communication layer for feature flag evaluation. This protocol aims to decouple applications from specific feature flag vendors, fostering a more flexible and interoperable ecosystem.
19+
20+
At its heart, OFREP defines a standard API layer between the provider and the flag management system, allowing OpenSource and commercial feature flag management systems to implement the protocol and to be compatible with the community maintained providers. It enables out-of-the-box compatibility with any OFREP compliant flag management system, regardless if they have a specific OpenFeature provider implementation or not.
21+
22+
If you are building an application that uses feature flags and you don't want to be tied to a specific vendor, you can use the OpenFeature Remote Evaluation Protocol to connect to any flag management system that supports the protocol, without needing to implement a specific provider for it.
23+
24+
## Things to know
25+
- OFREP is a protocol, not a provider. It defines how to communicate with feature flag management systems.
26+
- OFREP works on top of OpenFeature SDKs, by providing standardized providers that can be used to connect to any OFREP compliant flag management system.
27+
- OFREP works on the client side and the server side. It can be used in web, mobile, and server applications.
28+
- On the servers implementation, OFREP is designed to do evaluation by calling the OFREP API. There is no inprocess evaluation inside the OFREP providers.
29+
- OpenFeature community has built a set of providers that implement the OFREP protocol, allowing you to connect to any OFREP compliant flag management system.
30+
31+
## OFREP Support
32+
The OpenFeature community is maintaining a set of providers implementing the OFREP protocol, you can find the list of available providers in the [ecosystem page](https://openfeature.dev/ecosystem/?instant_search%5BrefinementList%5D%5Bvendor%5D%5B0%5D=OFREP) of the OpenFeature website.
33+
34+
You can also find the list of flag management systems that support the OFREP protocol in the [ecosystem page](https://openfeature.dev/ecosystem/?instant_search%5BrefinementList%5D%5Btype%5D%5B0%5D=OFREP%20API).
35+
36+
37+
## Create a provider for OFREP.
38+
If your language is not yet supported and you want to create a provider for OFREP, you can follow the OFREP provider guidelines, they will help you to implement a provider that is compatible with the OpenFeature Remote Evaluation Protocol.
39+
40+
- [OFREP Server Provider Guideline](./guideline/dynamic-context-provider.md)
41+
- [OFREP Client Provider Guideline](./guideline/static-context-provider.md)
42+
- [OpenAPI Specification](./service/openapi.yaml)
43+
44+
> [!NOTE]
45+
> After implementing the provider, you can register it in the OpenFeature ecosystem page by [creating an issue](https://github.com/open-feature/openfeature.dev/issues).
46+
47+
## Implement OFREP in your flag management system.
48+
49+
If you want to implement the OpenFeature Remote Evaluation Protocol in your flag management system, you must support the OpenAPI specification and implement the different endpoints defined.
50+
51+
- [OpenAPI Specification](./service/openapi.yaml)
52+
53+
> [!NOTE]
54+
> After implementing the OpenAPI specification, you can register your flag management system in the OpenFeature ecosystem page by [creating an issue](https://github.com/open-feature/openfeature.dev/issues), so users can find it and use it with the OFREP providers.
55+
5256
## Contribution
5357
If you are interested about the OpenFeature Remote Evaluation Protocol you can join the [`#openfeature-remote-evaluation-protocol`](https://cloud-native.slack.com/archives/C066A48LK35) slack channel on the [CNCF Slack](https://communityinviter.com/apps/cloud-native/cncf).
54-

0 commit comments

Comments
 (0)