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

Allow use of an OCI Registry instead/alongside of buffrs registry #229

Open
DerTiedemann opened this issue Mar 10, 2024 · 3 comments
Open
Labels
complexity::high Issues or ideas that are highly complex. require discussion and may affect backwards compatibility priority::high Urgent change or idea, please review quickly type::epic An epic change. This is going to make a big difference to buffrs as a product. type::feature Shipping or drafting a new feature for this product type::idea Rough idea or proposal for buffrs type::refactoring Changing the inner-workings of buffrs
Milestone

Comments

@DerTiedemann
Copy link

DerTiedemann commented Mar 10, 2024

Description

The problem the buffrs registry is trying to solve is the structured storage of versioned binary blobs containing .proto files (if i have understood correctly). It seems that the OCI distribution spec could be used to not have to implement the details of this problem in this project.

Here are some open source registries:

Reasoning

Currently the registry is being developed as a gateway to publish and allow the consumption versioned .proto files, which are tarballed and gzipped to some form of external file storage. These exact kinds of operations have been standardized in the aforementioned OCI distribution spec and have implementations that scale to a reasonable degree already publicly available. These registries are also offered by 3rd party cloud providers. From my point of view it would be way more attractive to a company adopting buffrs if it was possible to reuse already existing infrastructure + authentication config instead of having to manage another component. The concern of data locality can be addressed by the before mentioned open source registries most of which offer a broad range of storage drivers (s3, gcs, azure, fs, in-memory).
Using an open standard is also beneficial when it comes to 3rd party tooling e.g. cosign which can be used to verify artifact integrity.

TLDR: Rather to build 'Yet another package manger' + another storage solution, use existing storage solutions instead and build the spec on how to interact with it on top of that

Caveats

  • Backwards compatibility with the already existing buffrs registry
  • OCI is realized via HTTP
  • external dependency in a spec and implementation
  • too complex for 1.0

Links

This is more of an Idea than an issue, please let me know what you think and give feedback.

@mara-schulke
Copy link
Contributor

Hi @DerTiedemann, I think this is a very good idea and probably even more interesting to build than continuing the development of the buffrs registry itself in the short/mid-term!

For context: The initial idea behind the buffrs registry was the automated documentation + observability benefits you get from it (which you don't get from generic registries usually) but I do heavily agree with the fact that attractiveness of adoption is more important than any niche features as of right now.

I don't think that I will have the capacity to build this in the short term, would you be open to draft something?

@mara-schulke mara-schulke added priority::high Urgent change or idea, please review quickly type::epic An epic change. This is going to make a big difference to buffrs as a product. type::feature Shipping or drafting a new feature for this product type::refactoring Changing the inner-workings of buffrs type::idea Rough idea or proposal for buffrs labels Mar 11, 2024
@DerTiedemann
Copy link
Author

TBH I'd love to but due to an upcoming exam period, I am quite at capacity atm. I can diagram out a rough idea on what to change where, and what MediaTypes could look like (sth along the lines of metadata, schema, blob, etc). But no ETA on that earliest in 2-3 weeks.

@mara-schulke mara-schulke added this to the Stabilization milestone Apr 22, 2024
@mara-schulke mara-schulke added the complexity::high Issues or ideas that are highly complex. require discussion and may affect backwards compatibility label Apr 22, 2024
@mara-schulke
Copy link
Contributor

#235 should be implemented prior to this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
complexity::high Issues or ideas that are highly complex. require discussion and may affect backwards compatibility priority::high Urgent change or idea, please review quickly type::epic An epic change. This is going to make a big difference to buffrs as a product. type::feature Shipping or drafting a new feature for this product type::idea Rough idea or proposal for buffrs type::refactoring Changing the inner-workings of buffrs
Projects
None yet
Development

No branches or pull requests

2 participants