Skip to content

Definitions source map ​

This page is the reading map for NGB.Definitions.

Confirmed source anchors ​

text
NGB.Definitions/NGB.Definitions.csproj
NGB.Runtime/NGB.Runtime.csproj
NGB.Runtime/Documents/DocumentService.cs
NGB.Runtime/Reporting/ReportEngine.cs
NGB.PropertyManagement.Api/Program.cs

What the project boundary tells you first ​

NGB.Definitions/NGB.Definitions.csproj depends on:

  • NGB.Metadata
  • NGB.Accounting
  • NGB.OperationalRegisters
  • NGB.ReferenceRegisters
  • NGB.Persistence
  • NGB.Core
  • NGB.Tools

That is the right place in the architecture for a declarative registration layer.

Definitions sit above descriptive metadata and core engines, but below Runtime orchestration.

How Runtime proves the role of Definitions ​

NGB.Runtime/Documents/DocumentService.cs depends on a document type registry.

NGB.Runtime/Reporting/ReportEngine.cs depends on a report definition provider.

Those are the key clues.

Definitions are what Runtime reads to know:

  • which document types exist;
  • which reports exist;
  • what their metadata is;
  • which behaviors, policies, and runtime-visible artifacts should be registered.

Why the API host is also an anchor here ​

NGB.PropertyManagement.Api/Program.cs calls:

csharp
.AddPropertyManagementModule()

That is a composition-time proof that vertical modules bring their own definitions into the platform host.

In other words, Definitions are not only a static modeling concern. They are also a composition concern: a host chooses which vertical definitions become active by choosing which module registrations to add.

What Definitions should contain conceptually ​

A healthy Definitions module is where you declare the platform-visible catalog, document, report, register, and workflow surface of a module.

That usually includes:

  • document definitions;
  • catalog definitions;
  • report definitions;
  • module-level registration of behaviors or policies;
  • links to accounting/register semantics where relevant.

What Definitions should not become ​

Avoid turning Definitions into:

  • a second runtime layer;
  • a provider-specific SQL layer;
  • an ad hoc place for business service implementation.

Definitions should stay declarative and registration-oriented.

text
1. NGB.Definitions/NGB.Definitions.csproj
2. NGB.Runtime/Documents/DocumentService.cs
3. NGB.Runtime/Reporting/ReportEngine.cs
4. NGB.PropertyManagement.Api/Program.cs

After that, continue into the concrete vertical module registration files in your local checkout.

Safe change rules for Definitions ​

Keep definitions explicit ​

If the platform exposes a new catalog, document, or report, register it through Definitions rather than through scattered runtime conditionals.

Keep definitions declarative ​

Runtime should execute. Definitions should describe and register.

Keep shared Definitions free of vertical leakage ​

Shared platform definitions should remain general-purpose. Vertical definitions belong in vertical modules.

Released under the Apache License 2.0.