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

Consider defining protocol in an IDL #19

Open
skewballfox opened this issue Jun 24, 2024 · 1 comment
Open

Consider defining protocol in an IDL #19

skewballfox opened this issue Jun 24, 2024 · 1 comment

Comments

@skewballfox
Copy link

Hey cool project. Something that might be worth considering is defining the RPCs in an IDL. The primary advantage is the generation of client and server functions (in multiple languages), which also makes versioning easier in the event of breaking changes. The secondary advantage is implementers looking to use the protocol can easily see the functions messages and formats (and from that the capabilities), that they need to support if they want to make use of the protocol.

Here's the options I know of:

  • protocol buffers(.proto): primarily used with gRPC but it's encoding agnostic. Supports bidirectional streaming.
  • OpenAPI, more for restful services, not sure if it supports streams, which I think at least one of your functions needs
  • Smithy, less familiar with it, but it does seem to support streams.

There are code generator projects for each, and I think with at least one you could generate the exact same (request, response) pairs of json message you are currently using, to avoid changing current downstream clients.

@skewballfox
Copy link
Author

completely missed the yaml files under wyoming/conf/http my bad.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant