Glossary
Definitions of the terms used throughout these docs. They describe the library as it works today.
Module
Section titled “Module”A Pragmatic.{Name} package providing one capability (e.g. Pragmatic.Validation,
Pragmatic.Persistence). Modules are composed by the host application; the source
generator detects which modules are referenced and activates the matching features.
Boundary
Section titled “Boundary”A logical grouping inside a module’s domain, marked with [Boundary]. Actions,
entities, and endpoints are assigned to a boundary (via [BelongsTo<TBoundary>]),
which the generator uses to compose per-boundary interfaces and registration.
Medium Block
Section titled “Medium Block”A cross-cutting package that ships complete and is used as-is — include it, configure it, use it. Examples: Comments, Tags, Attachments, Notes. A Medium Block contributes its entity/actions/endpoints to the host through the generator.
DomainAction
Section titled “DomainAction”A unit of business behavior marked with [DomainAction], implementing an
IDomainAction<TResult> (or the mutation/side-effect variants). The generator emits
an invoker that wires dependencies, runs filters (validation, authorization),
and calls ExecuteAsync.
Invoker
Section titled “Invoker”Generated glue around a DomainAction: it resolves the action’s dependencies from
DI, applies the configured pipeline (e.g. permission checks, entity loading), and
executes the action. Invokers are generated types — never hand-written.
Source Generator (unified)
Section titled “Source Generator (unified)”The single PragmaticSourceGenerator that hosts most feature pipelines (Actions,
Endpoints, Persistence, Validation, …). A few generators are standalone
(Result, Internationalization, Logging). See
Source Generator.
Feature detection
Section titled “Feature detection”How the generator decides which pipelines to run: FeatureDetector probes the
referenced assemblies for marker types and produces a DetectedFeatures snapshot.
See Feature Detection.
Topology
Section titled “Topology”The compile-time wiring the generator infers from your code (boundaries, action assignments, entity configuration) — the first of the three configuration tiers. See Architecture.
IPragmaticBuilder
Section titled “IPragmaticBuilder”The infrastructural configuration surface (auth, storage, …) used in Program.cs
to choose module strategies — the second configuration tier. The generator
registers defaults; you override them with Use*() methods.
IStartupStep
Section titled “IStartupStep”A business-wiring hook (services, filters, OpenAPI, HTTP pipeline) — the third
configuration tier. Multiple steps run in Order.
Result / Maybe
Section titled “Result / Maybe”Result<TValue, TError> and Maybe<T> from Pragmatic.Result: explicit
success/failure and presence/absence values used instead of exceptions for
expected outcomes. See Result.
Diagnostic (PRAG####)
Section titled “Diagnostic (PRAG####)”A compile-time analyzer/generator message with a stable PRAG-prefixed id (e.g.
PRAG0680). See the Diagnostics reference.