Sobes.tech
Senior

¿Qué tipos de transacciones conoces? ¿Para qué sirven?

sobes.tech AI

Respuesta de la IA

En Go, las transacciones suelen estar relacionadas con bases de datos y se utilizan para garantizar la atomicidad, coherencia, aislamiento y durabilidad (ACID).

Tipos de transacciones:

  • Transacciones automáticas — cuando cada operación se realiza como una transacción separada.
  • Transacciones explícitas — cuando el desarrollador inicia, confirma o revoca explícitamente una transacción usando los métodos Begin(), Commit(), Rollback().
  • Transacciones de larga duración — se usan en sistemas distribuidos, donde la transacción puede durar mucho tiempo y requiere coordinación.

¿Para qué sirven las transacciones?

  • Garantizan que un grupo de operaciones se complete en su totalidad o no se realice en absoluto.
  • Previenen condiciones de carrera y aseguran la integridad de los datos.
  • Permiten revertir cambios en caso de errores.

Ejemplo de uso de transacción en Go con una base de datos:

tx, err := db.Begin()
if err != nil {
    log.Fatal(err)
}
_, err = tx.Exec("INSERT INTO users(name) VALUES(?)", "Alice")
if err != nil {
    tx.Rollback()
    log.Fatal(err)
}
err = tx.Commit()
if err != nil {
    log.Fatal(err)
}