Documentation
¶
Overview ¶
Package runtimecontrol owns the privileged Action persistence assembly contract. It is internal because F0 supports only framework-owned durable adapters whose transaction outcomes can be proven to the Runtime.
Index ¶
Constants ¶
const ServiceName = "modary.action-persistence"
ServiceName is the reserved Host service used for the atomic persistence bundle. Consumers cannot name its sealed type or recreate its service key.
Variables ¶
var ErrTransactionManagerContract = errors.New("action transaction manager contract violation")
ErrTransactionManagerContract identifies an official transaction owner that did not execute and propagate its callback according to the Runtime contract.
Functions ¶
This section is empty.
Types ¶
type Persistence ¶
type Persistence interface {
Plans() actionpersistence.PlanStore
Idempotency() actionpersistence.IdempotencyStore
Transactions() TransactionManager
// contains filtered or unexported methods
}
Persistence is the sealed, atomic persistence bundle installed by one official adapter. Keeping the three services together prevents mixed owners and prevents consumers from installing transaction control they cannot implement with the private outcome protocol.
func New ¶
func New(plans actionpersistence.PlanStore, idempotency actionpersistence.IdempotencyStore, transactions TransactionManager) (Persistence, error)
New validates and seals one complete Action persistence bundle.
type TransactionManager ¶
type TransactionManager interface {
WithinTransaction(context.Context, func(context.Context) error) error
}
TransactionManager is the private commit-or-rollback capability consumed by the governed Runtime. Official adapters must return framework-correlated outcome proof when an operation does not complete normally.