call
Sends request, to an aggregate of another bounded context, through that context's HTTP command gateway and returns its result once it is committed there: the aggregate it acted on (the id the target gave a creation without one), its version, duplicate when the target had already committed the request. It becomes a command as a returned request does: its deterministic request id makes every retry and replay of this execution the same request, which the target decides once and answers with the same aggregate; its operator, scope and causation are the root command's, which the client asserts on the target's internal port, naming its service, a port only the platform's own services reach. A wait that follows the saga goes on with it: the target signals the next hops as for a derived command.
The default is to derive the command (return it), which its context's command topic delivers. Call only where the target being online is a precondition and the saga needs the result now; the target's address is the host's configuration (wow.peers.<context>.url). The handler declares the class of the command in its @Sends(calls), which puts it in the Manifest; a command of a class it does not declare fails the handling, which no retry changes, as every send it does not declare does (me.ahoo.wow.api.annotation.Sends).
It is a suspend function, so a Java saga cannot call it (a blocking bridge is planned for 10.x): a Java saga derives its commands instead.
Throws
when the target refuses it, a business outcome that is not retried.
when it reaches no result or fails there: the handler fails, is retried within its subscription's budget, then parks its aggregate.