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

Design document on the API / SDK split and guidelines for what to put where #723

Closed
Oberon00 opened this issue Jul 21, 2020 · 7 comments
Closed
Labels
area:api Cross language API specification issue area:sdk Related to the SDK needs discussion Need more information before all suitable labels can be applied

Comments

@Oberon00
Copy link
Member

I don't think we have a document that clearly documents the goals the API / SDK split has. I think this could often help answer questions such as "Does this component belong in the SDK or the API?". I also think it is essential for the long term evolution of the API.

Example goals the separate API may or may not have:

  1. Have a lightweight artifact that 3rd-parties will be able to take a dependency on without increasing their memory/dependency footprint too much. This facilitates native support for tracing. I'm pretty sure the API has this goal.
  2. Allow different implementations of the telemetry library. For example, vendor-specific, or environment-specific (e.g. optimized for embedded).
@Oberon00 Oberon00 added area:api Cross language API specification issue area:sdk Related to the SDK needs discussion Need more information before all suitable labels can be applied labels Jul 21, 2020
@Oberon00 Oberon00 changed the title Design document on the API / SDK split and guidelines for what to put where needed Design document on the API / SDK split and guidelines for what to put where Jul 21, 2020
@Oberon00
Copy link
Member Author

Thank you for pointing me to that, I somehow missed this!
I think this does indeed cover what I wanted. I noticed it could use some updates (a few TBD here and there) and it is also geared towards library-writers not spec-writers, but generally it looks good.

@jkwatson
Copy link
Contributor

I do think that "minimal implementation" needs clarification, given that there doesn't appear to be consensus at the moment as to what that means. ;)

@Oberon00
Copy link
Member Author

Well, it's clearly defined there: The minimum so that the application builds and links without errors.

@jkwatson
Copy link
Contributor

Well, it's clearly defined there: The minimum so that the application builds and links without errors.

I disagree. That's required, but I don't see anything that says if it's the only thing they can do, or whether they should also do anything more.

@Oberon00
Copy link
Member Author

In https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/library-guidelines.md#api-and-minimal-implementation

The API dependency contains a minimal implementation of the API.

(bold added by me)

And also:

It is also important that minimal implementation incurs as little performance penalty as possible

By doing as little as possible (minimal) we incur as little performance overhead as possible.

Although I have to concede that these sentences might not have been meant to mean as much as they they can be interpreted to mean, so maybe I should reopen this issue to have a more clear text and possibly different decision there?

@jkwatson
Copy link
Contributor

Yes, I think it has ended up extremely unclear, especially as it relates to context propagation, both in and out of process. There is very little consistency or agreement about what "minimal" means in this regard at the moment. See #719, #721, and today's spec meeting. ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:api Cross language API specification issue area:sdk Related to the SDK needs discussion Need more information before all suitable labels can be applied
Projects
None yet
Development

No branches or pull requests

3 participants