If you were building a microservices-based trading system, how would you handle distributed transactions and data consistency across services?