How to design events?
Events are designed in a similar fashion as other data models. They always express something that happened in the past so they need to be named in the past sense, e.g. ContractSigned, not SignContract.
The payload should hold all relevant information for that event, better too much information than too little.
It’s useful to agree on a common set of headers for all events in an organisation such as timestamps, event name.