Class ManagedSagaClient
java.lang.Object
org.j7m.middleware.application.distributed.ManagedSagaClient
Resource-injectable saga control facade for one host-registered definition and version.
Administrative methods exist only when the host explicitly granted a separate server capability.
Transport failure never proves nonexecution; retry an identical stable request and business input.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordSafe durable run state without input, result payloads, owner credentials or endpoint data. -
Method Summary
Modifier and TypeMethodDescriptionrequestCompensation(String request, String sagaId, long expectedVersion, Instant deadline) Requests a durable compensation decision using a separately granted administrative capability.<T> TDecodes a completed result with the exact final step schema.Starts an ordinary typed input with a stable native request and run identity.Reads actual durable state without granting run ownership.toString()Omits capabilities and program identities from diagnostics.
-
Method Details
-
start
public ManagedSagaClient.Status start(String request, String sagaId, Object input, Instant deadline) throws IOException Starts an ordinary typed input with a stable native request and run identity. Encoding uses the exact generated first-step data type, never a class name from input.- Parameters:
request- stable application operation identitysagaId- stable logical run identityinput- first step's declared data valuedeadline- absolute original deadline- Returns:
- persisted native state; a timeout is not success
- Throws:
IOException- on unavailable quorum or uncertain completionorg.j7m.middleware.api.MiddlewareException- for closed/unavailable bindingIllegalArgumentException- for invalid identity, schema or frame bounds
-
status
Reads actual durable state without granting run ownership.- Parameters:
sagaId- logical run identitydeadline- absolute deadline- Returns:
- exact persisted status or NOT_FOUND
- Throws:
IOException- on unavailable quorumorg.j7m.middleware.api.MiddlewareException- for an unavailable binding
-
result
Decodes a completed result with the exact final step schema.- Type Parameters:
T- expected result type- Parameters:
sagaId- logical run identitytype- exact final step result class or its corresponding boxed primitive tokendeadline- absolute deadline- Returns:
- completed application result, possibly null
- Throws:
IOException- on unavailable quorumorg.j7m.middleware.api.MiddlewareException- while the run is not completedIllegalArgumentException- for a different requested type
-
requestCompensation
public ManagedSagaClient.Status requestCompensation(String request, String sagaId, long expectedVersion, Instant deadline) throws IOException Requests a durable compensation decision using a separately granted administrative capability.- Parameters:
request- stable administrative requestsagaId- logical run identityexpectedVersion- exact observed run versiondeadline- absolute deadline- Returns:
- persisted compensation decision or CONFLICT
- Throws:
IOException- on unavailable quorum or uncertain completionorg.j7m.middleware.api.MiddlewareException- without an explicit administrative registration
-
toString
-