We are porting an old monolith application and we are trying to apply the DDD concepts, we started looking for what we think are the Bounding Contexts of the application.
We have what we thought would be a bounding context which is what we call Location, it has a country, which has a collection of provinces where each province has a collection of cities.
The Locations are used in many parts of the application and can be added, updated and removed.
So what I thought was that we would have the Country entity as an aggregate root with Province and City as a simple entity.
The problem is what my coworker told me, in the old monolith application if you wanted to remove a location, you will only select the location and deleted, but with my approach we will have to get the Country Entity with the provinces and the cities just to delete a city an this approach will be way slower.
He says that each one should be an Aggregate and if there is a case where we delete a Country it should generate a domain event of country deleted, so we can handle the event and delete all the provinces associated and the same with the relation between provinces and cities.
So my question is which approach is the best?
We aren't really knowledgeable in DDD so it might be all wrong.