А с DDD кто то уже работал?
В DDD на это ответа нет. Как удобнее. А если ещё и про NoSQL не забывать, то оно и понятно.
Тут придётся подумать про транзакции. Каждый агрегат читается и пишется своим репозиторием. Мы как, хотим ждать чтобы записался Person прежде чем сохранять Order, если заказ для нового клиента делаем?
Или больше хотим не потерять ничего из заказа, и фиг с ним что может быть Person не запишем? (в случае заказа-клиента, конечно, достаточно невероятно, но мало ли).
Так что по требованиям. Надо целостность, делаем FK, надо распараллелить - не делаем FK. Я лично предпочитаю иметь целостные данные. Но иногда надо тупо записать, даже если с ошибками, потом восстановим / спросим пользователя.
Совет: если есть сомнения, не делаем FK. Его можно добавить потом. Пока не поняли что он нам нужен, работаем без него. Иногда неплохо так мешается, а в конце выясняется что целостность нам и не нужна. И вообще, данные о заказчике отдадим в другой сервис.