Module contracts are the center of the Nullstone platform.
They enable us to connect two blocks that know little of each other.
The challenge is when we want to upgrade these contracts.
How will this work?
By adding a version to these contracts, we can ensure that modules "snap together" without worrying about backward compatibility.
An ns_connection stanza could evolve to include a versioning scheme similar to a github ref.
data "ns_connection" "postgres" {
name = "postgres"
contract = "datastore/aws/postgres:*@v1"
}
This may require contracts to be defined in the system so that each new module version can be vetted against that contract.
Overview
Module contracts are the center of the Nullstone platform. They enable us to connect two blocks that know little of each other. The challenge is when we want to upgrade these contracts.
How will this work?
By adding a version to these contracts, we can ensure that modules "snap together" without worrying about backward compatibility.
An
ns_connection
stanza could evolve to include a versioning scheme similar to a github ref.This may require contracts to be defined in the system so that each new module version can be vetted against that contract.