In software design we want to achieve loose coupling and high cohesion
...sometimes
Means that modules should
In business terms: Actions of interest that occur at distinct points in time
In software: Simply a message sent between two system components or services.
It has a spesific type and can contain information that is passed to the other component.