2026-0045 Nusantara Nickel Smelter, E-House and LV distribution package
C3Accept

Domain event outbox

Every state change writes its event in the same transaction as the change itself. A separate relay dispatches them. No message is produced for a change that did not commit, and no change commits without its event.

SRS section 14.3, transactional outbox

Events recorded

6

Awaiting dispatch

2

With a last error

1

Distinct event types

6

There is no broker here, and the specification defers one deliberately. A polling relay over an outbox table gives the same delivery guarantee for a single deployment at a fraction of the operational cost, and the interface a broker would need is already the row shape below.
Event types
Event typeRecordedAwaiting dispatch
ArtifactRevisionIngested10
ExtractionCompleted10
ClaimAccepted10
BaselineFrozen10
ConfigurationDriftDetected11
OpenItemRaised11
Outbox
Newest first. Attempts and the last error are retained so a stuck event is visible.
OccurredTypeAggregateDispatchedAttemptsLast error
2026-05-06 20:00ArtifactRevisionIngestedARTIFACT_REVISION REV-SPC-0022026-05-06 20:011-
2026-05-07 06:00ExtractionCompletedARTIFACT_REVISION REV-SPC-0022026-05-07 06:011-
2026-05-10 18:00ClaimAcceptedCLAIM CLM-2026-0045-00042026-05-10 18:001-
2026-05-13 02:00BaselineFrozenBASELINE BSL-2026-0045-00012026-05-13 02:011-
2026-05-17 08:00ConfigurationDriftDetectedCONFIGURATION_SNAPSHOT SNP-2026-0045-0001pending3No subscriber is registered for this event type in the sandbox.
2026-05-17 08:00OpenItemRaisedOPEN_ITEM OPN-2026-0045-0001pending0-
Payloads
The row a broker would carry, unchanged.
[
  {
    "id": "EVT-0001",
    "projectId": "PRJ-2026-0045",
    "eventType": "ArtifactRevisionIngested",
    "aggregateKind": "ARTIFACT_REVISION",
    "aggregateId": "REV-SPC-002",
    "payload": {
      "revision": 2
    },
    "occurredAt": "2026-05-06T20:00:00.000Z",
    "dispatchedAt": "2026-05-06T20:01:12.000Z",
    "attempts": 1,
    "lastError": null
  },
  {
    "id": "EVT-0002",
    "projectId": "PRJ-2026-0045",
    "eventType": "ExtractionCompleted",
    "aggregateKind": "ARTIFACT_REVISION",
    "aggregateId": "REV-SPC-002",
    "payload": {
      "claims": 26,
      "ontologyVersion": "lv-panel/1.3.0"
    },
    "occurredAt": "2026-05-07T06:00:00.000Z",
    "dispatchedAt": "2026-05-07T06:01:48.000Z",
    "attempts": 1,
    "lastError": null
  },
  {
    "id": "EVT-0003",
    "projectId": "PRJ-2026-0045",
    "eventType": "ClaimAccepted",
    "aggregateKind": "CLAIM",
    "aggregateId": "CLM-2026-0045-0004",
    "payload": {
      "attributeKey": "RatedCurrentMain",
      "value": "3200"
    },
    "occurredAt": "2026-05-10T18:00:00.000Z",
    "dispatchedAt": "2026-05-10T18:00:36.000Z",
    "attempts": 1,
    "lastError": null
  },
  {
    "id": "EVT-0004",
    "projectId": "PRJ-2026-0045",
    "eventType": "BaselineFrozen",
    "aggregateKind": "BASELINE",
    "aggregateId": "BSL-2026-0045-0001",
    "payload": {
      "baselineType": "REQUIREMENT"
    },
    "occurredAt": "2026-05-13T02:00:00.000Z",
    "dispatchedAt": "2026-05-13T02:01:12.000Z",
    "attempts": 1,
    "lastError": null
  },
  {
    "id": "EVT-0005",
    "projectId": "PRJ-2026-0045",
    "eventType": "ConfigurationDriftDetected",
    "aggregateKind": "CONFIGURATION_SNAPSHOT",
    "aggregateId": "SNP-2026-0045-0001",
    "payload": {
      "storedRevision": 2,
      "upstreamRevision": 3
    },
    "occurredAt": "2026-05-17T08:00:00.000Z",
    "dispatchedAt": null,
    "attempts": 3,
    "lastError": "No subscriber is registered for this event type in the sandbox."
  },
  {
    "id": "EVT-0006",
    "projectId": "PRJ-2026-0045",
    "eventType": "OpenItemRaised",
    "aggregateKind": "OPEN_ITEM",
    "aggregateId": "OPN-2026-0045-0001",
    "payload": {
      "severity": "HIGH",
      "itemType": "CONFIGURATION_DRIFT"
    },
    "occurredAt": "2026-05-17T08:00:00.000Z",
    "dispatchedAt": null,
    "attempts": 0,
    "lastError": null
  }
]