На мой взгляд, не совсем верно выделять микросервисы "Пользователи", "Контакты", "Сообщения". Вас тянет парадигма ООП (сущности, существительные). А микросервисы про бизнес-задачи (глаголы).
Сравните:
Пользователи, Контакты, Сообщения
и
Авторизация, Обмен сообщениями.
Соответственно "Авторизация" имеет свою БД со списком всех зашедших пользователей и все (!) инструменты (фильтры, поиски и т.п.) для работы с ними.
Аналогично "Обмен сообщениями" имеет свою базу данных со всеми сообщениями и все (!) инструменты по работе и пересылке сообщений.
Над ними может быть (а может и не быть) объединяющий микросервис "Объединить" (Gateway).
П.С. Думайте глаголами.