Microservices data – eventual consistency – initial state?

Let’s say you have two microservices (contrived example):

  1. Customers service
  2. Dashboard service

In the customers service, you manage all aspects related to customers (address, preferences, whatever). In the dashboard application, there’s a map you want to display showing all of the names of customers and their locations. In other words, the dashboard service cares about a subset of the customer information (namely customer name and customer location).

My understanding is that it’s an anti-pattern for the dashboard service to synchronously communicate with the customers service whenever it needs customer data to show the map. So instead you have a data store in the dashboard service’s database with the customers and their location. When a customer is updated, an integration event is fired from the customer service and all downstream systems (aka. dashboard service) would get updated.

  1. Am I mostly correct in my analysis here or is there a better way to go about this?
  2. How would the dashboard service fetch the initial data of all of the customer’s locations?