Loosely Coupled Associations #32
Labels
Area: Mapping
Relates to one of the `ITopicMappingService` interfaces or implementations.
Area: Repositories
Relates to the `ITopicRepository` interface or one of its implementations.
Status 0: Discussion
Needs further evaluation of requirements and prioritization.
Type: Feature
Introduces a major area of functionality.
Currently, an entire topic graph needs to be loaded—typically via the
CachedTopicRepository
—with all data, and references to in-memory objects, to ensure that the graph can be navigated and mapped via association properties, such asParent
,Children
,References
, andRelationships
.Consequences
This has a number of downsides:
Alternatives
An alternative would be to expose a light-weight
Topic
entity, similar to theTopicData
interchange class, which tracks the unique keys of its associations, and then combine it with a service that retrieves those objects by key on demand—either from a data store, or from a cache.Questions
OnTopic
library? Or could it integrate with the existingTopic
entity? I assume the former.ITopicMappingService
which operates off of an e.g.ITopic{Record?}Repository
to dynamically query the database based on the needs of a record?This is likely to be a massive change in how OnTopic operates. It may be better to accept its limitations and focus instead on its strengths, instead of reinventing much of the library to support scenarios other CMS concepts are better suited for.
The text was updated successfully, but these errors were encountered: