-
Notifications
You must be signed in to change notification settings - Fork 42
Tenets
There is a small group of core contributors to the project, and they will not be experts in every language supported. Therefore, there are some guiding principles from the team that help determine the direction of strategic and technical choices for the SDKs we can produce and support.
Contributors need consistency. It's unlikely that an end-user will use the SDK in many languages, but an OpenFGA contributor must be able to maintain and extend SDKs even for languages they are not an expert in. To help ensure a contributor to the OpenFGA can be effective, the project strives for consistency between SDK implementations in different languages.
More specifically this means the features, logic, and behavior should be as identical as possible within the semantics of a given language. Surface-level concerns like naming, errors/exceptions, APIs, structure, and organization of the SDKs should be very similar.
Change is sometimes necessary, and an improvement must start as inconsistent implementation. That said, consistency across implementations ensures that we can take a positive improvement from one language, and drive that change across multiple languages more easily if they are consistent.
OpenFGA SDKs try to avoid as many dependencies as possible. For end users this makes OpenFGA easier to incorporate and less effort to maintain. For contributors this makes OpenFGA SDKs less effort to maintain, and requires following and responding to change in less projects.
For end-users, there should be no need to request an SDK implementation any
more specific than the language you use. As an example, for Java we use the
standard library's built-in HttpClient
.
This allows OpenFGA to work with an end-user's project without requiring or
restricting other HTTP dependencies.