Introducing trans::Transaction