-
Notifications
You must be signed in to change notification settings - Fork 15
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(planes): porting AEP-111 from AIP-111
No major changes, besides removing refrerences to AIPs.
- Loading branch information
1 parent
2eb0c24
commit 4721e8c
Showing
2 changed files
with
73 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
# Planes | ||
|
||
Resources and methods on an API can be divided into the *plane* that they reside | ||
or perform operations upon. For the context of APIs, the following planes are | ||
defined: | ||
|
||
- Management plane: a uniform, resource-oriented API that primarily | ||
configures and allows retrieval of resources. | ||
- Data plane: a heterogenous API (ideally resource-oriented) that reads and | ||
write user data. Often connects to entities provisioned by the management | ||
plane, such as virtual machines. | ||
|
||
The term "plane" was originally used in networking architecture. Although system | ||
and network architecture often defines additional planes (e.g. control plane or | ||
power planes), as the AEPs are focused on the interface, they are not defined in | ||
this AEP. | ||
|
||
## Guidance | ||
|
||
### Management Plane | ||
|
||
Management resources and methods exist primarily to provision, configure, and | ||
audit the resources that the data plane interfaces with. | ||
|
||
As an example, the following are considered management resources for a cloud | ||
provider: | ||
|
||
- virtual machines | ||
- virtual private networks | ||
- virtual disks | ||
- a blob store instance | ||
- a project or account | ||
|
||
### Data Plane | ||
|
||
Methods on the data plane operate on user data in a variety of data formats, and | ||
generally interface with a resource provisioned via a management plane API. | ||
Examples of data plane methods include: | ||
|
||
- writing and reading rows in a table | ||
- 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 | ||
requirements including high throughput, low latency, or the need to adhere to an | ||
existing interface specification (e.g. ANSI SQL). | ||
|
||
- For convenience, resources and methods that operate on the data plane **may** | ||
expose themselves via resource-oriented management APIs. If so, those resources | ||
and methods **must** adhere to the requirements of the management plane as | ||
specified in the other AEPs. | ||
|
||
### Major distinctions between management and data plane | ||
|
||
- [Declarative clients][] operate on the management plane exclusively. | ||
- Data planes are often on the critical path of user-facing functionality, and | ||
therefore: | ||
- Have higher availabilty requirements than management planes. | ||
- Are more peformance-sensitive than management planes. | ||
- Require higher-throughput than management planes. | ||
|
||
|
||
[Declarative clients]: ./0003.md#declarative-clients | ||
|
||
## Changelog | ||
|
||
- **2024-01-27**: initial fork of this AEP from https://google.aip.dev/111. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
id: 111 | ||
state: approved | ||
slug: planes | ||
created: 2024-01-27 | ||
placement: | ||
category: general |