Documentation
¶
Overview ¶
Copyright 2024 The txn Authors
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Package txn provides a generic framework for managing distributed transactions across multiple data sources in Go applications. It offers a simple and flexible way to coordinate transaction operations, ensuring data consistency and atomicity.
Key Concepts:
- Tx: The core interface for transaction management. It provides methods to begin, commit, rollback, and cancel transactions.
- Adapter: An interface that defines the contract for interacting with a specific data source within a transaction. Each adapter is responsible for implementing the necessary operations (begin, commit, rollback) for its respective data source.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Adapter ¶
type Adapter interface { // Begin starts a transaction on the data source. Begin(ctx context.Context) error // Commit commits the transaction on the data source. Commit(ctx context.Context) error // Rollback rolls back the transaction on the data source. Rollback(ctx context.Context) error // End is called at the end of a transaction to clean up any resources. // It's called regardless of whether the transaction was committed or rolled back. End(ctx context.Context) }
Adapter defines the interface for interacting with a specific data source within a transaction.
type Tx ¶
type Tx interface { // Begin starts a new transaction. Begin(ctx context.Context) error // Commit commits the transaction. Commit(ctx context.Context) error // Rollback rolls back the transaction. Rollback(ctx context.Context) error // Cancel cancels the transaction. This is useful in cases where you want // to abort the transaction without waiting for the context to be canceled. Cancel(ctx context.Context) // Register registers an adapter for a specific data source to participate // in the transaction. Register(Adapter) }
Tx is the core interface for managing transactions.
Directories
¶
Path | Synopsis |
---|---|
examples
|
|
basic-gorm
Module
|
|
basic-mongo
Module
|
|
tx
module
|
|
txngorm
module
|
|
txnmongo
module
|
|
txnredis
module
|
|
txnsql
module
|