Sobes.tech
Senior

Que tipos de transações conhece? Para que servem?

sobes.tech IA

Resposta da IA

Em Go, as transações geralmente estão relacionadas com bases de dados e são usadas para garantir a atomicidade, coerência, isolamento e durabilidade (ACID).

Tipos de transações:

  • Transações automáticas — quando cada operação é executada como uma transação separada.
  • Transações explícitas — quando o desenvolvedor inicia, confirma ou reverte explicitamente uma transação usando os métodos Begin(), Commit(), Rollback().
  • Transações de longa duração — usadas em sistemas distribuídos, onde a transação pode durar muito tempo e requer coordenação.

Para que servem as transações:

  • Garantem que um grupo de operações seja concluído na totalidade ou não seja concluído.
  • Previnem condições de corrida e garantem a integridade dos dados.
  • Permitem reverter alterações em caso de erros.

Exemplo de uso de transação em Go com uma base de dados:

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)
}