In Altostra, an Instance is a live release of a project in a specific environment. Think of it as an instance of a Class, in development terms.
You can deploy Altostra projects multiple times to multiple environments, creating a different instance with each deployment.
Every instance is self-contained, has its own events-history, and is mapped 1-to-1 to a cloud account stack. All instance resources are deployed together and removed together; they all share the same instance configuration.
Creating an instance means that you deploy a fresh and unique stack of your project to the cloud. All resources are created from scratch, and all tables and buckets are empty.
Updating an instance means that you push changes to an existing stack of your project to the cloud. The resources already exist and are updated as needed to fit the changes.
Use cases for instances
If you're using the Branch Deployments strategy with Git, deploy each branch as a separate instance in Altostra as part of a CI/CD pipeline. That way, developers can test their work in parallel without interfering with each other.
If you need to produce a preview for each Pull Request, configure the CI/CD pipeline can create an Altostran instance for each Pull Request, and then update the instance on every push to the Pull Requests's branch.
If you're using multiple stages for projects, such as Dev, QA, Prod, then create an Altostran instance for each stage and update the instances as needed.