A Command is an authorized request to validate and change canonical state. A Domain Event is an immutable business fact emitted by the resulting canonical mutation.
The neighboring concepts
An Audit Event records who attempted or performed an action, why, and with what result. An Integration Event is a versioned fact intended for another bounded consumer. An Outbox Message is durable delivery intent committed with its source change.
Those records can overlap in timing without being interchangeable. A rejected Command may create audit evidence even though no domain state changed. A successful canonical change may commit a Domain Event and an Outbox Message atomically so downstream delivery can retry safely.
Kernel is described as transactionally authoritative and event-audited, not universally event-sourced. Only bounded modules or projections with deterministic rebuild tests should claim replayability.