Stacks
A Stack is a live instance of a project deployed to a specific environment which can then be updated by further deployments of that same Stack.
You can deploy Altostra projects multiple times to multiple environments, by creating a new unique stack each time you deploy.
Every stack is self-contained, has its own events-history, and is mapped 1-to-1 to a cloud account stack. All stack resources are deployed together and removed together; they all share the same stack configuration.
Terminology
Creating a stack 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 a stack 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 stacks
Branch deployments
If you're using the Branch Deployments strategy with Git, deploy each branch as a separate stack in Altostra as part of a CI/CD pipeline. That way, developers can test their work in parallel without interfering with each other.
Preview deployments
If you need to produce a preview for each Pull Request, configure your CI pipeline to create a stack for each Pull Request, and then update the stack on every git push to the Pull Requests's branch.
Multiple stages
If you're using multiple stages for projects, such as Dev, QA, Prod, then create a stack for each stage and update the stacks as needed.