In microservices architecture, you can follow an event driven architecture where you want to publish events, doubt it’s about size of the payload. What is a reasonable amount of data to be there? You can publish an event with a complete set of data so you don’t need clients to do additional calls.
In the other hand you can publish just minimum data so you need adicional data to get complete data set.
What are the general rules to apply here?
There are no strict rules, just limitations.
In general there are two type of events: Domain Events and Integration Events.
Domain Events
Domain Events are emitted by an Aggregate inside the Bounded Context it belongs, but can be used as an Integration Event also.
If the event is of this type, i'd send as much data as possible about what triggered that event (think about it like an Event Store, where each event helps to reconstitute the current state of an Aggregate). Something like this:
Integration Events
An Integration Event is something that happened on your system that may not translate exactly to one change in your domain.
In this case, it's very hard to have a single payload that may fulfill all clients, i'd just send the least amount of information needed for other clients.