The wire
An event is a fact that happened, not a command. A subject reads as a sentence in the past tense: v1.{domain}.{subject}.{what happened}.
v1.user.email.verified not v1.user.verifyEmail
v1.billing.invoice.paid v1.billing.payInvoice
v1.iam.role.granted v1.iam.grantRoleThe difference is not cosmetic. A command is addressed to someone; a fact is published to no one in particular. An imperative name promises that somebody is obliged to carry it out — and the first service that subscribes "just to look" turns the bus into a hidden RPC: the event acquires an addressee the system cannot work without, and nowhere is that written down.
A closed vocabulary of participles
The participle comes from a list (event_verbs) for the same reason the code has a closed verb dictionary: updated and changed must not mean the same thing in two different domains.
activated added approved archived banned cancelled changed created decided deleted
enrolled executed expired failed followed granted liked normalized paid played
published purchased read refunded registered removed requested restored revoked
scanned submitted unlocked updated uploaded verifiedA compound tail is fine as long as the participle stays the last word: v1.family.memberAdded, v1.iam.role.statusChanged.
A live name is never renamed
Working consumers are subscribed to a subject, so changing the name is not a refactor but a migration: a new subject, both published for a while, consumers move over, the old one is retired. That is why the name is chosen once and chosen right — and why the shape is checked in CI rather than in someone's head.