Skip to content

Accounting source map ​

This page documents the architectural reading path for NGB.Accounting.

Confirmed source anchors ​

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

What is confirmed directly in the source shape ​

NGB.Accounting/NGB.Accounting.csproj is a deliberately lean core engine project.

It depends only on:

  • NGB.Core
  • NGB.Tools

That tells you something important immediately: Accounting is intended to be a domain engine / contract layer, not a runtime orchestrator and not a PostgreSQL provider.

NGB.Runtime/NGB.Runtime.csproj then confirms that Runtime depends on Accounting, not the other way around.

How Runtime proves the role of Accounting ​

Even though the deepest accounting engine files are not the primary anchors on this page, NGB.Runtime/Documents/DocumentService.cs makes the platform contract visible.

Runtime exposes document effects and posting-oriented operations on top of Accounting. That is the architectural direction you want to preserve:

  • Accounting defines the semantics of entries/effects;
  • Runtime coordinates when and why those semantics are invoked;
  • PostgreSQL persists them.

Why the host composition still matters ​

NGB.PropertyManagement.Api/Program.cs composes Runtime + PostgreSQL + vertical modules. It does not compose Accounting directly into the HTTP host as a separate concern.

That is also correct. Accounting should normally be reached through Runtime and module registrations, not by becoming a web layer of its own.

What to look for next in your local checkout ​

When you continue deeper in the codebase, use this page as the boundary map and then inspect the accounting engine files that define:

  • entries and posting semantics;
  • validation rules;
  • invariants for debits/credits and period handling;
  • append-only/reversal behavior.

Safe change rules for Accounting ​

Keep Accounting infrastructure-free ​

Do not put Dapper, SQL, or host-specific concerns into NGB.Accounting.

Keep Accounting independent of vertical business terms ​

The engine should stay reusable across Property Management, Trade, Agency Billing, and future verticals.

Put orchestration above, not inside, the engine ​

Workflow transitions, HTTP behavior, and UI shaping belong to Runtime / API layers, not to the Accounting core.

Released under the Apache License 2.0.