Skip to content

Reference Registers source map

This page is the architectural reading map for NGB.ReferenceRegisters.

Confirmed source anchors

text
NGB.ReferenceRegisters/NGB.ReferenceRegisters.csproj
NGB.Runtime/NGB.Runtime.csproj
NGB.Runtime/Documents/DocumentService.cs
NGB.PropertyManagement.Api/Program.cs

What the project boundary tells you first

NGB.ReferenceRegisters/NGB.ReferenceRegisters.csproj depends on:

  • NGB.Tools
  • NGB.Core
  • NGB.Metadata

That is a strong hint about its role.

Reference Registers are not only a raw engine. They also depend on metadata because they model reference-style effective state that usually needs descriptive register shape information.

How Runtime proves the role of Reference Registers

NGB.Runtime/NGB.Runtime.csproj depends on NGB.ReferenceRegisters, so Runtime is responsible for coordinating RR behavior.

NGB.Runtime/Documents/DocumentService.cs exposes reference-register effects as part of the document effects surface, which is exactly what users need for explainability.

Why the metadata dependency matters

Unlike a purely minimal engine, RR already shows a tighter link to metadata at the project boundary. That fits the platform idea that reference registers often represent controlled effective business facts such as prices, policies, or other latest-effective reference-like values.

What to inspect next in your local checkout

After reading this boundary map, continue into the RR engine files that define:

  • write semantics;
  • effective-state resolution;
  • metadata/descriptor contracts for RR records;
  • the coupling points used by runtime or provider code.

Safe change rules for RR

Keep write semantics explicit

Reference Registers are valuable because the effective state remains explainable through writes rather than through silent overwrites.

Keep infrastructure out of the engine

Provider-specific persistence and SQL stay outside NGB.ReferenceRegisters.

Use Runtime and Definitions to express business meaning

A price register, policy register, or any other reference-style register should be expressed through definitions/runtime composition instead of pushing vertical business meaning into the shared RR core.

Released under the Apache License 2.0.