Events
Commands ask for something to happen; events state that it did. What that distinction changes about coupling, naming, consumers and the consistency of everything downstream.
A command asks for something to happen and has exactly one handler; an event states that something happened and has any number of consumers.
Publishing a fact instead of calling the next step, what that actually buys, and the honest list of what it costs.
Past-tense domain facts decouple; procedural names smuggle the consumer's behaviour into the producer.
A consumer is a program that will see every message twice, some out of order, and one that poisons it.
Database change to event to indexer to search engine — and the fact that when it breaks, nothing errors and search is quietly wrong.
Once work happens after the response, some reads are stale — and the engineering is in bounding it, showing it honestly, and knowing when it has stopped converging.