saga
fun saga(name: String, filter: SubscriptionFilter, startFrom: StartFrom = StartFrom.BEGINNING, decoder: EntryDecoder = EntryDecoder.RECORDS, models: Collection<AggregateModel<*>> = emptyList(), context: String = filter.context, retry: HandlerRetry? = null, handler: suspend (SubscribedEntry) -> HandledEntry): Subscription
A saga: handler returns what it did with the entry (HandledEntry): the ids of the commands it derived, and the rejection of one of them that it handled. A wait whose chain continues after this saga's hop then waits for each of them, or ends at the hop with the rejection; the saga passes the entry's wait context on to them (me.ahoo.wow.spi.wait.WaitContext.derived) when it executes them.