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

Language specific packages for A/B/n API #1394

Open
kalantar opened this issue Jan 27, 2023 · 1 comment
Open

Language specific packages for A/B/n API #1394

kalantar opened this issue Jan 27, 2023 · 1 comment
Labels
help wanted Good for contributors who have already submitted their first pull request

Comments

@kalantar
Copy link
Member

Is your feature request related to a problem? Please describe.
To support A/B/n testing, Iter8 provides an SDK. This SDK currently provides 2 APIs:

  • Lookup() - Identifies a track label that the caller can use to send requests for a given user session. The caller uses the track as an index to route requests.
  • WriteMetric() - Associates a metric with the version currently associated with the recommended track. Allows caller to ignore the mapping between track and version.

The SDK is implemented using gRPC. Iter8 provides a protocol buffer document and an implementing service. See A/B tutorial for details. Sample code, in Node.js and Go, are provided.

gRPC protocol buffers are language independent. They can be used to generate stubs for many languages. The examples provided took the following approaches:

  1. Node.js - language specific files manually generated and used in example
  2. go - import package from main Iter8 project

Describe the solution you'd like
Developers can manually generate files from the protocol buffer file. However, it would be nice to have libraries/packages for all/any of the supported languages (list from https://grpc.io/docs/languages/):

  • C/C++
  • C#
  • Dart
  • Go (done)
  • Java
  • Kotlin
  • Node.js
  • Objective-C
  • PHP
  • Python
  • Ruby
@kalantar kalantar added the help wanted Good for contributors who have already submitted their first pull request label Jan 27, 2023
@kalantar
Copy link
Member Author

kalantar commented Feb 1, 2023

As an example of the undesirable option: in the Node.js implementation of the sample application, two files were manually generated from a copy of the abn.proto and explicitly included in the main.js.

It would be preferable to refer to an external package that is maintained and updated whenever abn.proto changes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Good for contributors who have already submitted their first pull request
Projects
None yet
Development

No branches or pull requests

1 participant