Architecture Decision Record

ADR-0026: Business Acceptance Is Modeled Downstream, Not In Boundary Confirmation

Status: Accepted · Date: 2026-03-06

Status: Accepted

Date: 2026-03-06

Context

BSFG already defines ConfirmReceipt as durable commit in the target zone log. That leaves an important boundary question unresolved:

If BSFG expands confirmation to include domain semantics, it stops being a boundary appliance and becomes part transport, part workflow engine, part business system.

Options Considered

Option Description Benefits Drawbacks
Boundary confirmation equals business acceptance Make ConfirmReceipt mean the receiving domain processed and accepted the fact semantically.

|

| | Boundary confirmation equals consumer acknowledgement | Make ConfirmReceipt mean some consumer fetched and acked the fact. |

|

| | No distinction at all | Let each deployment interpret confirmation however it wants. |

|

| | Boundary confirmation remains transport-local; business acceptance is modeled as downstream facts (Selected) | Keep BSFG confirmation at durable-commit scope, and represent semantic processing or acceptance using additional facts emitted by downstream systems. |

|

|

Decision

BSFG does not treat transport confirmation as business acceptance.

ConfirmReceipt = durable commit in target zone log
not = consumer processed
not = business accepted
not = projection completed

If downstream systems need to express semantic outcomes, they do so by appending new facts, for example:

(message:123, received_by, Enterprise)
(message:123, validated_by, release-engine)
(batch:PlantA/B1042, accepted_by, release-engine)
(batch:PlantA/B1042, rejected_by, qc-review)

BSFG is therefore responsible for:

BSFG is not responsible for:

Consequences

Benefits:

Tradeoffs: