Every layer is a service with a contract.
You build on it, not around it. Every contract has fixed boundaries: quotas, identity, network policy, certificates.
The architecture underneath is called Cloud Multiverse: one model from the account to your app, in which every environment is a copy of exactly the layers it needs.
What is built.
Every contract is built and has a local binding. Below is the status on AWS per layer. We don't call a layer built before it is.
Status on AWS as of · platform-contracts v0.5.0
- built
- being built
- designed, not built yet
The layers, bottom to top.
PrivateNetwork
Network & account
The contract
A private network of your own with public, private and data subnets, in a Provider Container.
The Provider Container is the unit of administration, access, policy and cost, assigned to one zone: production or non-production. The private network sits inside it. On AWS that becomes a VPC attached to the Transit Gateway.
On AWS designed, not built yet
DnsName
DNS
The contract
A domain with a valid certificate, per branch outside production.
The domain is the name your app is reached by. Outside production it carries your branch, so every copy has an address and a certificate of its own.
On AWS being built
The contract
An address that may send only from itself, and what arrives posted to your app as a signed webhook.
The SMTP credentials may send only from that one address. What arrives goes to a path of your app as one email.received event, signed the way Standard Webhooks sign. A copy never inherits its parent's mail; it only gets mail when it asks for it.
On AWS being built
RelationalData
Data
The contract
A Postgres database whose connection sits as a secret in your app's namespace.
Managed by the platform or run in the cluster. On AWS it comes first as CloudNativePG in your app's namespace, which is being built. A managed database follows with the managed services.
On AWS being built
ApplicationRuntime
Runtime
The contract
A namespace with quotas, limits, default-deny network policy and an identity of its own.
Under the namespace sits an Application Runtime: a Kubernetes cluster of one version in your private network, with a gateway. The namespace itself also runs restricted pod security.
On AWS being built
Application
Your AI app
The contract
Your app from its chart at a fixed revision, with its own data and domain.
Your app lives in its own namespace and uses its own data and domain. Argo CD rolls it out; a new revision is a new rollout, not handwork.
On AWS being built
Inherit or own.
Every environment of your app says per layer whether it owns it or inherits it from its parent. Production is the root and owns every layer. Owning a layer means owning every layer below it. An environment always owns its namespace and its data.
Environments that go away again.
A branch gets an environment of its own with a lifetime in hours, at most 168; the reference app picks 72. Then the platform cleans up the copy. Production has no lifetime. Locally this already works, at namespace level from a merge request; on AWS it is being built.