Task Description
Behavior driven development is basically a style where a log or event bus is used, in order to test functionality. This way, it gets easier to log and test performance relevant aspects.
In order to support such, this implies, that this is at least a log, where each message type is statically typed aka statically structured. If this is done as a fully fledged event bus, support for statically typed events is needed as well.