Microservices are deployed hosting their own database.
What strategies do you employ when business requirements necessitate joins across data in multiple services?
Example problem: You are implementing a movie review site. You have a movie microservice that holds the movie DB. You also have a review microservice that manages reviews in its own separate DB. Reviews are linked to movies via a GUID; but as these are implemented as separate data stores, not a key constraint.
You would like to have available, accurate to the last minute, a report that tells you the total number of reviews for each review level grouped by the first letter of the movie having a review word count > 25 words. You currently host 5 million reviews for 40,000 movies.
E.G. Reviews with more than 25 words:
- A [8457 "1 star"] [16615 "2 star"] [...
- B [98445 "1 star"] [80210 "2 star"] [...
- ...
Having chosen a microservice architecture for your project, what strategies would you now employ to implement this feature?