Suppose I’m using Axon Server as an event store. During command handling, say I need to resolve some command values from external master data registries. As this requires some more time, I’m wondering, are there any negative consequences (besides lowered throughput for that particular aggregate instance)?
I remember there is a timeout for commands in axon server (
axoniq.axonserver.default-command-timeout, see https://github.com/AxonIQ/axon-server-se/blob/6eb98fbd79e88a0f6576b230cfeb98af71add342/axonserver/src/main/java/io/axoniq/axonserver/message/command/CommandCache.java#L41) which defaults to 5mins.
When you send a command, axon server will cancel the commmand if it is not finished after this timeout, which the command-sending component will recognize as exceptional
CommandResultMessage. However, I don’t know if the command execution is also cancelled somehow on the command-executing component, but from what I remember from our usecase, I don’t think so.
We experienced the timeout when we did some long-running operations in commands (cascade deleting object trees with commands) which took more than 5 minutes. In the end we simply increased the timeout to a value that suited our use-case. Apart from that I don’t remember any other consequences.
Tnx, Jakob. This is very helpful