Whenever you're ready, walk me through how you'd approach this.
What strategies would you use to ensure data consistency in a distributed microservices architecture? Explain how you would handle transactions spanning services, retries, duplicate messages, partial failures, and conflicting updates. Discuss consistency requirements for online features, offline training data, model metadata, and observability, including the tradeoffs between strong consistency, eventual consistency, availability, and latency.