I guess I expected that the framework would skip the second message, when the correlation key matches an already running instance. Is this behavior documented somewhere?
Isn’t it kind of dangerous, e.g. catching the Saga start date like this
That’s the expected behavior. It might sound weird when there is only one message that can start the saga, but if there were multiple IAmStartedBy<>, then you want all the messages to be handled. So, yes, the correct usage is to check if it’s already started.