mirror of
https://github.com/opentofu/opentofu.git
synced 2025-01-12 17:12:01 -06:00
f40800b3a4
This is part of a general effort to move all of Terraform's non-library package surface under internal in order to reinforce that these are for internal use within Terraform only. If you were previously importing packages under this prefix into an external codebase, you could pin to an earlier release tag as an interim solution until you've make a plan to achieve the same functionality some other way.
22 lines
1.2 KiB
Go
22 lines
1.2 KiB
Go
// 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
|