Describe the architecture of a microservices-based system you worked on. How did you handle distributed transactions?