transaction_id is a unique identifier that
identifies the present or past transaction.
A transaction is made up of one or more sub-transactions.
A transaction has one
role for the entire lifetime,
but the transaction can different values of
as the transaction is processed.
For example, if the user "Installed OpenOffice" and the backend has to:
update libxml2 as a dependency
install java as dependency
This is one single transaction with the role
with 4 different sub-transactions.
transaction_id must be of the format
/job_identifier_data where the daemon controls
job is a monotonically updating number and is
retained over reboots.
identifier is random data used by the daemon to
ensure jobs started in parallel cannot race, and also to make a
malicious client program harder to write.
data can be used for ref-counting in the backend or
for any other purpose.
It is designed to make the life of a backend writer a little bit easier.
transaction_id would be