mirror of
https://github.com/hashicorp/terraform.git
synced 2026-04-27 09:07:02 -04:00
24 lines
1.3 KiB
Go
24 lines
1.3 KiB
Go
// Copyright IBM Corp. 2014, 2026
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
// Package statemgr defines the interfaces and some supporting functionality
|
|
// for "state managers", which are components responsible for writing state
|
|
// to some persistent storage and then later retrieving it.
|
|
//
|
|
// State managers will usually (but not necessarily) use the state file formats
|
|
// implemented in the sibling directory "statefile" to serialize the persistent
|
|
// parts of state for storage.
|
|
//
|
|
// State managers are responsible for ensuring that stored state can be updated
|
|
// safely across multiple, possibly-concurrent Terraform runs (with reasonable
|
|
// constraints and limitations). The rest of Terraform considers state to be
|
|
// a mutable data structure, with state managers preserving that illusion
|
|
// by creating snapshots of the state and updating them over time.
|
|
//
|
|
// From the perspective of callers of the general state manager API, a state
|
|
// manager is able to return the latest snapshot and to replace that snapshot
|
|
// with a new one. Some state managers may also preserve historical snapshots
|
|
// using facilities offered by their storage backend, but this is always an
|
|
// implementation detail: the historical versions are not visible to a user
|
|
// of these interfaces.
|
|
package statemgr
|