You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
The text was updated successfully, but these errors were encountered:
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:
.proto
): primarily used with gRPC but it's encoding agnostic. Supports bidirectional streaming.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.
The text was updated successfully, but these errors were encountered: