tx

package module
v0.0.0-...-5fc91b8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 20, 2024 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Overview

Copyright 2024 The tx 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.

func New

func New() Tx

New creates a new Tx instance.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL