Skip to content

Reference


Quick summary

The Reference section defines the meaning and responsibility of each ForgingBlocks component. These pages are precise and definition-oriented — meant to be consulted as needed, not read linearly.

Components:
- Foundation — Core abstractions (Result, Port, Identified).
- Domain — Domain modeling (Entity, ValueObject, AggregateRoot, Messages, Specification).
- Application — Application layer patterns (ApplicationServicePort, CommandHandlerPort, RepositoryPort, EventStorePort).
- Infrastructure — Technical adapters and implementations (Repositories, MessageCodec/DictMessageCodec).
- Presentation — Input/output boundaries.

Dependencies point inward: Infrastructure/Presentation → Application → Domain, all depending on Foundation.


flowchart LR
    D[Domain<br/>Problem-space concepts] -->|depends on| F[Foundation<br/>Shared abstractions]
    A[Application<br/>Coordination & behavior] -->|depends on| D
    A -->|depends on| F
    I[Infrastructure<br/>Technical adapters] -->|depends on| A
    I -->|depends on| F
    P[Presentation<br/>Input boundaries] -->|depends on| A
    P -->|depends on| F

Reference Sections

  • Foundation — Core abstractions and utilities (Result, Port, Identified, etc.).
  • API Stability — SemVer policy and public API stability guarantees.
  • Domain — Domain modeling abstractions (Entity, ValueObject, AggregateRoot, Messages, Specification).
  • Application — Application layer patterns (ApplicationServicePort, CommandHandlerPort, RepositoryPort, EventStorePort, SpecificationRepositoryPort).
  • Infrastructure — Infrastructure adapters and implementations (Repositories, MessageCodec/DictMessageCodec).
  • Presentation — Input/output boundaries and presentation layer.