A timeout is specified as a unix time stamp after which the given transaction should be cancelled.
When a transaction cannot forward the transaction toward its target service before the given time stamp, the transaction should be dropped and a timeout notification is sent back to the transaction-originating service.
This means that a service-generated transaction_id must be provided by the originating service.
The given service will have its registered timeout function invoked when a timeout occurs.