beginnerData Consistency & Duplication Challenges

When is it acceptable for one microservice to keep a local copy of data owned by another service?

Duplicating data across services is acceptable, and even a well-established best practice, when it's done deliberately and kept in sync through a reliable mechanism such as a stream of events — for example, an Accounts service keeping a local copy of a customer's name, updated whenever a name-change event arrives, so it doesn't need a network call to Customer service on every single request. What's genuinely risky isn't duplication itself; it's duplication nobody planned for, with no explicit synchronization mechanism keeping the copies honestly aligned over time. The trade-off to weigh consciously is speed and availability against a brief, bounded window of staleness — usually a completely acceptable trade as long as the staleness window is small and predictable.

Ready to master this question?

Generate a complete walkthrough — background, the full answer in plain language, a working code example explained line by line, a real-world scenario, common mistakes, and how this same question gets asked in different ways.

Sign in to generate a response

Next Step

Continue to Why does a fully event-sourced CQRS implementation with separate databases justify its added complexity?← Back to all Event-Driven Microservices questions