Class DefaultResultGateway
- All Implemented Interfaces:
Namespaced<ResultGateway>, ResultGateway, AutoCloseable
ResultGateway interface for sending response messages.
This class is responsible for handling responses to commands, queries, dispatching the result message to the
specified target using a GatewayClient.
The dispatch process utilizes the DispatchInterceptor and ResponseMapper to modify or monitor
messages before they are sent.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceHandles an asynchronous result-preparation failure and may retry the supplied publication. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()protected ResultGatewaycreateForNamespace(String namespace) protected io.fluxzero.common.api.SerializedMessageinterceptDispatch(Object payload, io.fluxzero.common.api.Metadata metadata) respond(Object payload, io.fluxzero.common.api.Metadata metadata, String target, Integer requestId, io.fluxzero.common.Guarantee guarantee) Sends a response with the specified payload, metadata, target, request ID, and delivery guarantee.respondBatched(Object response, String target, Integer requestId) Enqueues an automatically published handler response for ordered, context-preserving batch serialization.respondBatched(Object response, String target, Integer requestId, DefaultResultGateway.ResultPreparationErrorHandler errorHandler) Enqueues an automatically published handler response and delegates asynchronous preparation failures to the originating consumer's error handler.voidrespondBatchedAndForget(Object response, String target, Integer requestId, DefaultResultGateway.ResultPreparationErrorHandler errorHandler) Enqueues an automatically published handler response without allocating an individual completion future.Methods inherited from class AbstractNamespaced
forNamespaceMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Namespaced
forApplicationNamespace, forDefaultNamespace, forNamespaceMethods inherited from interface ResultGateway
respond
-
Constructor Details
-
DefaultResultGateway
public DefaultResultGateway()
-
-
Method Details
-
createForNamespace
- Specified by:
createForNamespacein classAbstractNamespaced<ResultGateway>
-
respond
public CompletableFuture<Void> respond(Object payload, io.fluxzero.common.api.Metadata metadata, String target, Integer requestId, io.fluxzero.common.Guarantee guarantee) Description copied from interface:ResultGatewaySends a response with the specified payload, metadata, target, request ID, and delivery guarantee.This method gives full control over how and when the response is delivered.
- Specified by:
respondin interfaceResultGateway- Parameters:
payload- the payload of the responsemetadata- additional metadata to includetarget- the intended recipient of the responserequestId- the identifier of the original requestguarantee- delivery guarantee (e.g.,Guarantee.SENTorGuarantee.STORED)- Returns:
- a
CompletableFuturethat completes when the response is dispatched (depending on the guarantee)
-
respondBatched
Enqueues an automatically published handler response for ordered, context-preserving batch serialization.The originating handler context is captured before the response is enqueued. Mapping, interception and serialization then run with that context active on the result workers, allowing the complete response pipeline to overlap with subsequent tracking work. Monitoring and appending remain ordered. The returned future completes when the resulting transport append completes.
-
respondBatched
public CompletableFuture<Void> respondBatched(Object response, String target, Integer requestId, DefaultResultGateway.ResultPreparationErrorHandler errorHandler) Enqueues an automatically published handler response and delegates asynchronous preparation failures to the originating consumer's error handler. -
respondBatchedAndForget
public void respondBatchedAndForget(Object response, String target, Integer requestId, DefaultResultGateway.ResultPreparationErrorHandler errorHandler) Enqueues an automatically published handler response without allocating an individual completion future.The ordered result backlog still waits for the actual transport append before publishing its next batch. This method is intended for consumers that explicitly do not await asynchronous result publication.
-
interceptDispatch
protected io.fluxzero.common.api.SerializedMessage interceptDispatch(Object payload, io.fluxzero.common.api.Metadata metadata) -
close
public void close()- Specified by:
closein interfaceAutoCloseable- Overrides:
closein classAbstractNamespaced<ResultGateway>
-