StatelessSagaFunction

A stateless saga function that processes domain events and generates command streams. This function wraps a delegate message function and extends its behavior to handle command execution and collection into a CommandStream for stateless saga processing.

Parameters

delegate

The underlying message function that handles the domain event processing.

commandGateway

The gateway used to send commands.

commandMessageFactory

The factory for creating command messages.

Constructors

Link copied to clipboard
constructor(delegate: MessageFunction<Any, DomainEventExchange<*>, Mono<*>>, commandGateway: CommandGateway, commandMessageFactory: CommandMessageFactory)

Properties

Link copied to clipboard
open override val contextName: String
Link copied to clipboard
open override val delegate: MessageFunction<Any, DomainEventExchange<*>, Mono<*>>
Link copied to clipboard
open override val functionKind: FunctionKind
Link copied to clipboard
open override val name: String
Link copied to clipboard
open override val processor: Any

The processor instance that contains the actual business logic for handling messages.

Link copied to clipboard
open override val supportedTopics: Set<NamedAggregate>

The set of named aggregates (topics) that this function supports. The function will only process messages that match one of these aggregates.

Link copied to clipboard
open override val supportedType: Class<*>

The class type of message bodies that this function can process. Used to determine if a message is supported by checking if the message body is an instance of this type.

Functions

Link copied to clipboard
open override fun <A : Annotation> getAnnotation(annotationClass: Class<A>): A?

Retrieves an annotation of the specified type from the function's metadata.

Link copied to clipboard
open operator override fun invoke(exchange: DomainEventExchange<*>): Mono<CommandStream>

Invokes the message function with the given exchange. This is the primary method to execute the function's logic.

Link copied to clipboard
open override fun toString(): String