What is source in the Spring's ApplicationEvent?

2020-02-26 java spring events

In Spring Framework classes that represent an event to be published by the ApplicationEventPublisher and listened to by the @EventListener are EventObject <- ApplicationEvent <- PayloadApplicationEvent.

My question is what is the non-nullable source in the initial EventObject constructor and all derived subclasses constructors?

Javadocs give a rather vague explanation that it is
"the object upon which the Event in question initially occurred".

Is it an associated domain entity or publisher service or something else?

Additionally, I am confused why is it required at all if @EventListener states that "Events can be ApplicationEvent instances as well as arbitrary objects"?