How do you handle distributed transactions and maintain data consistency across microservices in a banking environment?