Skip to content

Mapping Services Lazy-Loading Integration #118

Description

@JeremyCaney

The mapping services (both forward and reverse) fan out as concurrent tasks assuming loads complete synchronously, which was true before lazy loading, but is now false—so awaits expose concurrency races, nondeterministic ordering, and cases where checks silently force full eager loads, which defeats the point of the lazy-loading entirely.

Steps

  • Fix where lazy loading is being silently negated (e.g., eager evaluation of getters, un-awaited fills of extended attributes)
  • Concurrency safety (e.g., locking resolution of association, infinite-loop detection, guarding modification of shared lists)
  • Deterministic collection ordering (replacing completion-order with source-order)
  • ReverseTopicMappingService:
    • Fix a data-integrity bug where clearing relationships doesn't purge deferred entries, so deletions get silently resurrected
    • Sequentializing its fan-out to avoid concurrent writes to the same collections on the target Topic

Metadata

Metadata

Assignees

Labels

Area: RepositoriesRelates to the `ITopicRepository` interface or one of its implementations.Priority: 1Severity 2: MajorStatus 5: CompleteTask is considered complete, and ready for deployment.Type: BugBehavior that is inconsistent with documented or expected behavior.Type: ImprovementImproves the functionality or interface of an existing feature.

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions