Which of the following data duplication options across shards is recommended?
As you point out, having triggers between the various shards is silly; the whole reason for sharding is independent database
  operations. So you can throw it out right away.
  
  Updating both tables at the same time is the approach with the fewest
  moving parts. Over the long term, it will be the most maintainable.
  And it will be the easiest to debug if something goes wrong.
  
  But if response time is important, then you might think of some sort
  of messaging approach: update the comments-by-entry table, and queue a
  message to update the comments-by-user table. If it takes an hour for
  that message to be processed -- or if it gets lost in a system crash
  -- no big deal, you can always recover. By no means should you use a messaging approach to update both tables.


Answer by: @kdgregory Link: https://softwareengineering.stackexchange.com/a/134607/41398