Given an aggregator portal the user must be able to create, read and update the requested entity. The entity here are all of different types and live in different systems. The portal shows the metric of the entities at a given unit of time and allows an user to filter the details by their type, name etc. The system is basically ticketing based system where the user must first create a ticket for each request (i.e. create, modify and delete).
The user may have different roles eg: user, admin and team lead etc. The user can create, modify and delete (only before cancellation and resolved phase).
Given there are four different kinds of entities Bag, Car, Oven and Apple. They all have their own external system, my system should allow the user to create these resources (which ultimately delegates requests to the original system), filter them based on their type, modify and delete them. The system should be responsible for keeping track of each requests.
Resolved / / New --- Waiting --- \ \ Cancelled
At present all the external systems have their own notion of unique ID and sometimes not for example an apple has a name
Foo in box A but another box B may have an apple with same name.
Second, the Apple system may decide to shift Apple
Foo to some other box Z, how could I know that the apple
Foo in box Z is same apple?
So, basically I am struggling to define unique ID for each resource in my system which could be linked with entities in external systems.
Hope the question is clear because I have tried to trim the description and question as they are part of more complex domain.
PS: I am new to domain driven design so please point me to proper references while using key terms.