️ Domain Boundary Diagrams β€” `_LayerView`, `_Stats`, `_ErrorSurface`, `_ErrorPropagation` (v1.45.0)

Apply [DomainBoundary("LayerName")] to a class or method and [ResultFlow] generates four additional constants that expose the architectural picture of your pipeline.

[DomainBoundary("Domain")]
static class UserService { ... }

[DomainBoundary("Application")]
static class OrderService
{
    [ResultFlow(MaxDepth = 2)]
    public static Result<Order> PlaceOrderCross(int userId, int productId) => ...
}

_Diagram with cross-method tracing β€” the full pipeline, sub-methods expanded as subgraphs:

Cross-method pipeline with ValidateUser subgraph

_LayerView β€” architecture layers, color-coded by layer:

Architecture layer view β€” Application β†’ Domain

_ErrorPropagation β€” each error type grouped under the layer it originates from:

Error propagation by layer

Constant Type What it shows
_Diagram flowchart LR Full pipeline β€” type travel, typed error edges, cross-method subgraphs
_LayerView flowchart TD Architecture β€” Layer β†’ Class β†’ Method, color-coded subgraphs
_ErrorSurface flowchart LR Fail-edges only β€” the complete error surface at a glance
_ErrorPropagation flowchart TD Error types grouped by the layer they originate from
_Stats Markdown table Step count, async steps, error types, layers crossed, max depth

[DomainBoundary] can be placed on a class (applies to all its methods) or on a method directly. Without the attribute, the generator falls back to namespace heuristics: *.Domain.* β†’ Domain, *.Application.* β†’ Application, *.Infrastructure.* β†’ Infrastructure.