Following #212 that removed database persistence in preference to using the ATE API, we now have an opportunity to simplify the domain model.
Reconsider surrogate identifiers
The domain model has surrogate identifiers that were used to hold the database entity ids to support the persistence layer. Some of these are also used by the API persistence layer, although only to indicate whether a domain object is transient or persistent. We can simplify the surrogate identifiers still in use, perhaps by using the API's JSON-LD @id URL to indicate a persistent instance.
Remove historic support
The database persistence layer loaded all the historic records and the domain model was responsible for obtaining the current state. The ATE API only returns the current state and so the resultant domain model is always shallow. Consider whether we can remove historic support from the domain model.
Following #212 that removed database persistence in preference to using the ATE API, we now have an opportunity to simplify the domain model.
Reconsider surrogate identifiers
The domain model has surrogate identifiers that were used to hold the database entity ids to support the persistence layer. Some of these are also used by the API persistence layer, although only to indicate whether a domain object is transient or persistent. We can simplify the surrogate identifiers still in use, perhaps by using the API's JSON-LD
@idURL to indicate a persistent instance.Remove historic support
The database persistence layer loaded all the historic records and the domain model was responsible for obtaining the current state. The ATE API only returns the current state and so the resultant domain model is always shallow. Consider whether we can remove historic support from the domain model.