This chapter covers:
- Understanding why you need transactions
- Using and configuring transactions
- Understanding the differences between local and global transactions
- Using transactions with messaging and databases
- Rolling back transactions
- Compensating when transactions aren’t supported
- Preventing duplicate messages by using idempotency
- Learning about the idempotent repository implementations shipped out of the box