Events unlock decoupling, but they also unlock debugging complexity.
Use events for facts
Publish immutable domain facts, not please-do-X commands disguised as events.
Schema evolution
Version payloads and keep consumers tolerant. Breaking event schemas break everything silently.
Observability
Correlate traces across producers and consumers or incident response becomes archaeology.