nullstone-io / nullstone

Nullstone is a customizable developer platform launched on your cloud accounts.
https://nullstone.io
MIT License
39 stars 1 forks source link

Contract Versions #108

Open BSick7 opened 2 years ago

BSick7 commented 2 years ago

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.

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.