The-Inevitable-Event-Centric-Book
The-Inevitable-Event-Centric-Book copied to clipboard
Problem: Define the word Event
Event is a very much overused term, the meaning of which is very much context dependent.
-
In the context of event sourcing An event is a fact that has happened in the past to an entity.
-
In the context of event carried state transfer An event is a message send out by one system when a state managed by that system has changed which has a payload being the state as at the time the message was sent.
-
In the context of event driven architecture An event is a trigger to do something that arrives from outside the system.
-
In the context of event storming An event is an action that the system being designed can know about and which can trigger an action.
In the context of event sourcing
An event is a fact that has happened in the past to an entity.
Maybe clarify that the state of the application is stored in event streams and thus the current state of the application is a fold of those events?
Please can we make this coherent with the meaning of event in the real world, and then qualify the use of this term as it used variously within software? The best definition I found is the following:
"Thus the actual world is built up of actual occasions; and by the ontological principle whatever things there are in any sense of 'existence' are derived by abstraction from actual occasions. I shall use the term 'event' in the more general sense of a nexus of actual occasions, inter-related in some determinate fashion in one extensive quantum. An actual occasion is the limiting type of an event with only one member."
"Domain event" is a good example of this limiting type, but we really need to understand the normal way in which the word is used by normal people which in fact coincides very well with the following definition from Whitehead, accepted by Russell, which forms the core of modern process philosophy, and is the essence of pattern language, which is the only thing that has given structure to design and the communication of design in software development:
https://github.com/johnbywater/drops
See also: https://twitter.com/jcoplien/status/940977144301260800
And: https://twitter.com/jcoplien/status/448486866514616320
And: https://twitter.com/jcoplien/status/1105498540623699975
And also: https://twitter.com/jcoplien/status/1105826074406080513