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 for stacks exporting APIs #8

Closed
joeduffy opened this issue Nov 23, 2016 · 2 comments
Closed

Design for stacks exporting APIs #8

joeduffy opened this issue Nov 23, 2016 · 2 comments

Comments

@joeduffy
Copy link
Member

At the moment, we have placeholders for stacks being able to export structured APIs. This will enable stronger typechecking, including proper substitutability that our unique approach to componentization enables. The problem is, we don't yet have any idea of what form this takes.

At a top-level, we must pick a metadata format. Candidates here include OpenAPI/Swagger, RAML, and Protobufs/gRPC. One option is to pick something that is "provider"-like and pluggable.

I have to admit, I have a preference for OpenAPI/Swagger for "internet-facing" services, and Protobufs/gRPC for inward-facing microservices APIs.

After that, we need to figure out what runtime manifestation occurs on the wire. For instance, it's possible we would leverage OpenAPI/Swagger as the metadata format, but turn around and use gRPC and HTTP/2 on the wire.

Moreover, when installing a stack locally, we may want to auto-generate some client side proxy wrappers for interacting with the service, to add strong typing. This becomes more important as we consider doing the DSL.

This work item will likely spawn many more as we make progress on these topics.

@pgavlin
Copy link
Member

pgavlin commented Aug 20, 2018

@joeduffy I'm not 100% sure what the idea is here--can we close this one out?

@joeduffy
Copy link
Member Author

This doesn't really apply to our new model -- closing out.

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

No branches or pull requests

2 participants