The question is transaction boundaries try unrolling a change that had to touch state of several services and one of the requests failed
https://github.com/gravitational/teleport/blob/master/lib/ba...
In addition to that Golang's context
https://golang.org/pkg/context/
is used to broadcast the failure of a distributed operation and release associated resources with it
https://aws.amazon.com/blogs/aws/new-amazon-dynamodb-transac...
https://docs.aws.amazon.com/amazondynamodb/latest/developerg...