While each microservice generally will have its own data - certain entities are required to be consistent across multiple services.
For such data consistency requiremen
"accordingly update the linked entities in their respective databases" -> data duplication -> FAIL.
Using events to update other databases is identical to caching which brings cache consistency problem which is the problem you arise in your question.
Keep your local databases as separated as possible and use pull semantics instead of push, i.e. make RPC calls when you need some data and be prepared to gracefully handle possible errors like timeouts, missing data or service unavailability. Akka or Finagle gives enough tools to do that right.
This approach might hurt performance but at least you can choose what to trade and where. Possible ways to decrease latency and increase throughput are: