handle_commit(Transaction.t, state :: term) :: {:ok, Transaction.t} | {:error, term}
handle_validate(Transaction.t, state :: term) :: {:ok, Transaction.t} | {:error, term}