Suppose I have in my domain model two aggregates: Dog and Cat. Dog is composed of DogName and DogFood. Cat is composed of CatName and CatFood.
The repositories, however, are a PetNames API which only provides a single endpoint to retrieve all names, and PetFoods API which only provides a single endpoint to retrieve all foods. They are both 3rd party. I have no control over them.
There are times in my Use Cases where I need to rehydrate both a Dog and a Cat for some operation. The calls to the two repositories are expensive and I don't want to make multiple calls that retrieve identical data for each aggregate.
How do I go about rehydrating the aggregates in this case?