TRUSTED FACTORYFLOW
Events. Preserve source and ordering.
Separate domain events, vendor callbacks and telemetry to prevent duplicate effects and false business confirmation.
Three message classes, distinct handling.
| Class | Source and meaning | Handling condition |
|---|---|---|
| Domain event | A domain service emits a business fact after its transaction. | Outbox/inbox and consumer idempotency; no cross-service database writes. |
| Vendor callback | A vendor or adapter reports equipment or mission state. | Authenticate source and validate eventId/revision and mapping before domain updates. |
| Telemetry | Time-based position, battery or signal observations. | Retain freshness and units; telemetry alone cannot confirm handover or stock. |
Reference event catalogue.
Dotted names are reference wire names; PascalCase names are legacy documentation aliases. Do not emit both as independent events. Deployment names are agreed in the project contract.
| eventType | Documentation alias | Owner | Meaning |
|---|---|---|---|
| wms.task.released | WmsTaskReleased | WMS Task | Task released, not completed. |
| mission.status.changed | MissionStatusChanged | Fleet | Reconcile ordering and revision before updating execution. |
| device.command.acked | DeviceCommandAcked | Adapter | Command acknowledged, not proof of equipment effect. |
| edge.replay.conflict | EdgeReplayConflict | Edge / domain owner | Quarantine conflict for data-owner resolution. |
| evidence.package.closed | EvidencePackageClosed | Evidence | Manifest closed, not delivery completed. |
Apply each business effect once.
Transport may redeliver. The inbox checks eventId, source and scope; stale entityVersion cannot regress state. Out-of-order events need snapshots or contract-defined holding. Kafka features alone do not establish exactly-once business effects.
Owned DLQ and replay.
Record schema/mapping errors and source, fix causes and approve the replay set. Preserve eventId, correlation and checkpoint; do not bypass deduplication with new identities. Reconcile unresolved equipment effects before retrying commands.