Files
zitadel/backend/v3/storage/database/tx.go

39 lines
735 B
Go
Raw Permalink Normal View History

2025-04-29 06:03:47 +02:00
package database
import "context"
2025-05-08 19:01:55 +02:00
// Transaction is an SQL transaction.
2025-04-29 06:03:47 +02:00
type Transaction interface {
Commit(ctx context.Context) error
Rollback(ctx context.Context) error
End(ctx context.Context, err error) error
Begin(ctx context.Context) (Transaction, error)
QueryExecutor
}
2025-05-08 19:01:55 +02:00
// Beginner can start a new transaction.
2025-04-29 06:03:47 +02:00
type Beginner interface {
Begin(ctx context.Context, opts *TransactionOptions) (Transaction, error)
}
type TransactionOptions struct {
IsolationLevel IsolationLevel
AccessMode AccessMode
}
type IsolationLevel uint8
const (
IsolationLevelSerializable IsolationLevel = iota
IsolationLevelReadCommitted
)
type AccessMode uint8
const (
AccessModeReadWrite AccessMode = iota
AccessModeReadOnly
)