Architecture Decision Record

ADR-0008: Semantic Unit Is Envelope Plus Fact

Status: Accepted · Date: 2026-03-06

Status: Accepted

Date: 2026-03-06

Context

BSFG requires a transport-neutral semantic unit that can cross zone boundaries, survive replay, remain auditable, and avoid coupling the boundary substrate to any single domain ontology. The unit must support deterministic idempotency, large-attachment indirection, and later interpretation by domain-specific consumers.

The design must also preserve the distinction between:

Options Considered

Option Description Benefits Drawbacks
Typed domain messages Model each business concept as a dedicated transport message type.

|

| | Envelope plus message-kind hierarchy | Use envelope metadata plus top-level kinds such as event, delta, snapshot, ack, control. |

|

| | Envelope plus fact (Selected) | Represent the semantic core as a fact triple carried inside a transport envelope. |

|

|

Decision

BSFG will treat the semantic transport unit as:

message = envelope + fact

The envelope carries transport and policy metadata. The fact carries domain meaning.

fact = (subject, predicate, object_json)

The canonical fact fields are:

The envelope carries fields such as:

Large artifacts are not embedded by default; they are stored out-of-band and referenced from facts via attachment metadata.

Consequences

Benefits:

Tradeoffs: