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

feat(planes): porting AEP-111 from AIP-111 #85

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

toumorokoshi
Copy link
Member

No major changes, besides removing refrerences to AIPs.

@toumorokoshi toumorokoshi requested a review from a team as a code owner January 28, 2024 06:21
No major changes, besides removing refrerences to AIPs.
aep/general/0111/aep.md Outdated Show resolved Hide resolved
aep/general/0111/aep.md Outdated Show resolved Hide resolved
aep/general/0111/aep.md Outdated Show resolved Hide resolved
aep/general/0111/aep.md Outdated Show resolved Hide resolved
aep/general/0111/aep.md Outdated Show resolved Hide resolved
aep/general/0111/aep.md Outdated Show resolved Hide resolved
aep/general/0111/aep.md Outdated Show resolved Hide resolved
- pushing to or pulling from a message queue
- uploading blobs to or downloading blobs from a blob store instance

Data plane APIs **may** be heterogenous across a larger API surface, due to
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does it mean for an API to be heterogenous? Not entirely resource-oriented?

What is a "larger API surface"? Larger than what?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

across a larger API surface doesn't seem helpful here - will remove.

I probably can be more precise that heterogeneity - I mean that there's more leeway in the requirements of data plane vs those for management APIs, up to being completely non-AEP compliant (e.g. SQL or a protocol for blob storage).

Comment on lines +50 to +51
resources and methods **must** adhere to the requirements of the management
plane as specified in the other AEPs.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Which other AEPs do (or will) talk about the requirements of a management plane API for its corresponding data plane APIs?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://google.aip.dev/search?q=plane. Primarily management plane operations have additional requirements around CRUDL.

@@ -0,0 +1,66 @@
# Planes
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added a bunch of comments below, some just proofreading and others more about the content, but my big question is: what guidance does this AEP actually contain? It doesn't seem like there's anything actionable. I don't know what lint rules I'd write, or when I'd refer to it as part of API design. What API design problem is this AEP addressing?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

at Google, there was a large debate about the type of design guidance that would be needed to provide really high-quality declarative APIs (e.g. for Terraform or Kubernetes), at odds with more flexible API needs (generally because of existing precedent, but also sometimes a matter of convenience).

To begin to help address those, we started adding this notion of API planes, and attached various guidance to the management plane in the AIPs: https://google.aip.dev/search?q=management.

to be fair this aligned with some terminology primarily used at Google. Many APIs at least differentiate between a "control plane" and a "data plane": https://docs.aws.amazon.com/whitepapers/latest/aws-fault-isolation-boundaries/control-planes-and-data-planes.html.

I think it's important for us to add some clarity on the various planes of operations and how to differentiate them, given it is common nomenclature for many APIs (especially in the cloud).

I think the content here is actually pretty solid, but it was definitely a work in progress

Copy link
Collaborator

@rofrankel rofrankel May 18, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's all useful context...but it doesn't actually answer the question about what actionable guidance is in this AEP. What would a violation of this AEP look like?

Copy link
Contributor

@mkistler mkistler left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. 👍

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

Successfully merging this pull request may close these issues.

None yet

3 participants