Appearance
Document + Definitions Integration Collaborators Map
How to read this page
This page is the compact companion to:
It is meant for fast orientation. Each block shows a verified collaborator and the role it plays in the integration boundary.
Core collaborator map
DefinitionsRegistry
Role:
- immutable source of registered document, catalog, relationship, and derivation definitions.
Why it matters:
- it is the verified handoff point between vertical definition registration and platform runtime consumption.
DocumentRelationshipTypeDefinition
Role:
- declarative semantics for relationship edges.
What it contributes:
- relationship code and display identity;
- bidirectionality;
- cardinality;
- type restrictions.
DocumentDerivationDefinition
Role:
- declarative semantics for “Create based on”.
What it contributes:
- source type;
- target type;
- relationship codes to emit;
- optional prefilling handler.
DocumentTableMetadata
Role:
- physical and logical shape of a document table.
What it contributes:
- head vs part distinction;
- physical table name;
- column collection;
- optional part code.
DocumentColumnMetadata
Role:
- column-level description used by runtime and UI shaping.
What it contributes:
- physical name;
- type;
- required flag;
- lookup;
- mirrored relationship metadata;
- options.
IDocumentService
Role:
- public runtime contract for universal document behavior.
Why it matters:
- graph, derivation, lifecycle, lookup, and effects are all presented through one coherent service.
DocumentService
Role:
- integration orchestrator.
What it actually connects:
- document metadata;
- document definitions;
- generic persistence;
- derivation infrastructure;
- relationship graph read infrastructure;
- effect queries.
IDocumentDerivationService
Role:
- specialized platform service that executes derivation definitions.
Why it matters:
- keeps
DocumentServiceorchestration-focused instead of embedding derivation mechanics directly.
IDocumentRepository
Role:
- common document registry repository.
Why it matters:
- anchors the split between shared header row and typed document storage.
IDocumentReader / IDocumentWriter
Role:
- universal head-table read/write boundary driven by descriptors.
Why they matter:
- this is how metadata becomes executable without per-document-type repositories in runtime.
IDocumentPartsReader / IDocumentPartsWriter
Role:
- universal tabular-parts boundary.
Why they matter:
- they let runtime treat parts generically while still preserving typed physical tables.
Integration narrative in one paragraph
Definitions decide what a document means in the graph. Metadata decides how a document is shaped in storage and UI. Runtime, through DocumentService, decides how those two models become operations such as draft creation, derivation, relationship graph reads, and effects reads. Persistence supplies the generic execution primitives that make this universal model practical.
Verified anchor list
NGB.Definitions/DefinitionsRegistry.csNGB.Definitions/Documents/Relationships/DocumentRelationshipTypeDefinition.csNGB.Definitions/Documents/Derivations/DocumentDerivationDefinition.csNGB.Metadata/Documents/Hybrid/DocumentTableMetadata.csNGB.Metadata/Documents/Hybrid/DocumentColumnMetadata.csNGB.Application.Abstractions/Services/IDocumentService.csNGB.Runtime/Documents/DocumentService.csNGB.Runtime/Documents/Derivations/IDocumentDerivationService.csNGB.Persistence/Documents/IDocumentRepository.csNGB.Persistence/Documents/Universal/IDocumentReader.csNGB.Persistence/Documents/Universal/IDocumentWriter.csNGB.Persistence/Documents/Universal/IDocumentPartsReader.csNGB.Persistence/Documents/Universal/IDocumentPartsWriter.cs