hikoutei 0.3.2 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -2
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.d.ts +2 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js +5 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmMappedObservation.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.d.ts +52 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js +195 -13
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPolling.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.d.ts +24 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.d.ts.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.js +124 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingFastPath.js.map +1 -0
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.js +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingInspection.js.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.d.ts +15 -2
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.d.ts.map +1 -1
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.js +27 -3
- package/dist/adapter/persistence/providers/mikro-orm/observation/MikroOrmUserInputPollingPersistence.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.js +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/errors.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts +2 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/index.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/index.js +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/index.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts +3 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js +9 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperation.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js +137 -20
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/effect/effectOperationScript.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js +82 -34
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/observation/observationOperation.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.d.ts +31 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.d.ts.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.js +567 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/batchAppendOperation.js.map +1 -0
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts +12 -17
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js +27 -213
- package/dist/adapter/sheets/providers/apps-script-gateway/operations/write/fastAppendOperation.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js +81 -8
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationClient.js.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts +1 -6
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.d.ts.map +1 -1
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js +15 -9
- package/dist/adapter/sheets/providers/apps-script-gateway/transport/operationSyncGateway.js.map +1 -1
- package/dist/application/orm/mapping/projection.js +1 -1
- package/dist/application/orm/mapping/projection.js.map +1 -1
- package/dist/application/orm/persistence/flush/flushCoordinator.d.ts.map +1 -1
- package/dist/application/orm/persistence/flush/flushCoordinator.js +1 -0
- package/dist/application/orm/persistence/flush/flushCoordinator.js.map +1 -1
- package/dist/application/orm/persistence/lifecycle/entityLifecycle.js +1 -1
- package/dist/application/orm/persistence/lifecycle/entityLifecycle.js.map +1 -1
- package/dist/application/sync/gateway/SyncGatewayBootstrap.d.ts +3 -1
- package/dist/application/sync/gateway/SyncGatewayBootstrap.d.ts.map +1 -1
- package/dist/application/sync/gateway/SyncGatewayBootstrap.js +3 -1
- package/dist/application/sync/gateway/SyncGatewayBootstrap.js.map +1 -1
- package/dist/application/sync/gateway/conflictProjection.d.ts +13 -0
- package/dist/application/sync/gateway/conflictProjection.d.ts.map +1 -0
- package/dist/application/sync/gateway/conflictProjection.js +58 -0
- package/dist/application/sync/gateway/conflictProjection.js.map +1 -0
- package/dist/application/sync/gateway/conflictProjectionRegistration.d.ts +11 -0
- package/dist/application/sync/gateway/conflictProjectionRegistration.d.ts.map +1 -0
- package/dist/application/sync/gateway/conflictProjectionRegistration.js +70 -0
- package/dist/application/sync/gateway/conflictProjectionRegistration.js.map +1 -0
- package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.d.ts +102 -0
- package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.d.ts.map +1 -0
- package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.js +221 -0
- package/dist/application/sync/gateway/coordinator/CoordinatedSyncGateway.js.map +1 -0
- package/dist/application/sync/gateway/coordinator/asyncMutex.d.ts +51 -0
- package/dist/application/sync/gateway/coordinator/asyncMutex.d.ts.map +1 -0
- package/dist/application/sync/gateway/coordinator/asyncMutex.js +65 -0
- package/dist/application/sync/gateway/coordinator/asyncMutex.js.map +1 -0
- package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.d.ts +31 -0
- package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.d.ts.map +1 -0
- package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.js +13 -0
- package/dist/application/sync/gateway/coordinator/coordinatorTelemetry.js.map +1 -0
- package/dist/application/sync/gateway/syncGateway.d.ts +26 -6
- package/dist/application/sync/gateway/syncGateway.d.ts.map +1 -1
- package/dist/application/sync/gateway/syncGateway.js +10 -2
- package/dist/application/sync/gateway/syncGateway.js.map +1 -1
- package/dist/application/sync/gateway/transportClassification.d.ts +62 -0
- package/dist/application/sync/gateway/transportClassification.d.ts.map +1 -0
- package/dist/application/sync/gateway/transportClassification.js +133 -0
- package/dist/application/sync/gateway/transportClassification.js.map +1 -0
- package/dist/application/sync/inbound/autoSystemConflictResolution.d.ts +26 -0
- package/dist/application/sync/inbound/autoSystemConflictResolution.d.ts.map +1 -0
- package/dist/application/sync/inbound/autoSystemConflictResolution.js +335 -0
- package/dist/application/sync/inbound/autoSystemConflictResolution.js.map +1 -0
- package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts +50 -0
- package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.d.ts.map +1 -0
- package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js +97 -0
- package/dist/application/sync/outbound/effects/AdaptiveEffectBatchController.js.map +1 -0
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts +4 -1
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js +35 -1
- package/dist/application/sync/outbound/effects/SyncEffectSupervisor.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts +14 -2
- package/dist/application/sync/outbound/effects/SyncEffectWorker.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorker.js +190 -31
- package/dist/application/sync/outbound/effects/SyncEffectWorker.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts +25 -2
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js +25 -2
- package/dist/application/sync/outbound/effects/SyncEffectWorkerConstants.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts +14 -7
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js +118 -14
- package/dist/application/sync/outbound/effects/SyncEffectWorkerDispatch.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts +30 -9
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js +102 -18
- package/dist/application/sync/outbound/effects/SyncEffectWorkerRouting.js.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.d.ts.map +1 -1
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js +49 -14
- package/dist/application/sync/outbound/effects/SyncEffectWorkerTransitions.js.map +1 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.d.ts.map +1 -1
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js +97 -17
- package/dist/application/sync/outbound/reconciliation/ReconciliationScanner.js.map +1 -1
- package/dist/application/sync/service/SyncServiceBootstrap.d.ts +17 -0
- package/dist/application/sync/service/SyncServiceBootstrap.d.ts.map +1 -1
- package/dist/application/sync/service/SyncServiceBootstrap.js +125 -10
- package/dist/application/sync/service/SyncServiceBootstrap.js.map +1 -1
- package/dist/application/sync/service/contracts.d.ts +2 -0
- package/dist/application/sync/service/contracts.d.ts.map +1 -1
- package/dist/application/sync/telemetry/syncTiming.d.ts +6 -0
- package/dist/application/sync/telemetry/syncTiming.d.ts.map +1 -1
- package/dist/application/sync/telemetry/syncTiming.js +2 -0
- package/dist/application/sync/telemetry/syncTiming.js.map +1 -1
- package/dist/domain/conflict/index.d.ts +1 -1
- package/dist/domain/conflict/index.d.ts.map +1 -1
- package/dist/domain/conflict/index.js +1 -1
- package/dist/domain/conflict/index.js.map +1 -1
- package/dist/domain/conflict/transitions.d.ts +3 -0
- package/dist/domain/conflict/transitions.d.ts.map +1 -1
- package/dist/domain/conflict/transitions.js +3 -2
- package/dist/domain/conflict/transitions.js.map +1 -1
- package/dist/domain/model/constants.d.ts +1 -0
- package/dist/domain/model/constants.d.ts.map +1 -1
- package/dist/domain/model/constants.js +1 -0
- package/dist/domain/model/constants.js.map +1 -1
- package/dist/infrastructure/storage/index.d.ts +4 -2
- package/dist/infrastructure/storage/index.d.ts.map +1 -1
- package/dist/infrastructure/storage/index.js +2 -1
- package/dist/infrastructure/storage/index.js.map +1 -1
- package/dist/infrastructure/storage/sqlite/migrateSchema.d.ts.map +1 -1
- package/dist/infrastructure/storage/sqlite/migrateSchema.js +59 -1
- package/dist/infrastructure/storage/sqlite/migrateSchema.js.map +1 -1
- package/dist/infrastructure/storage/sqlite/schema.d.ts +12 -1
- package/dist/infrastructure/storage/sqlite/schema.d.ts.map +1 -1
- package/dist/infrastructure/storage/sqlite/schema.js +47 -3
- package/dist/infrastructure/storage/sqlite/schema.js.map +1 -1
- package/dist/infrastructure/storage/sqlite/schemaTypes.d.ts +2 -2
- package/dist/infrastructure/storage/sqlite/schemaTypes.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.js +1 -1
- package/dist/infrastructure/storage/state/canonical/canonicalCommit.js.map +1 -1
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.d.ts +1 -0
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.js +1 -1
- package/dist/infrastructure/storage/state/mapped/mappedPersistenceSql.js.map +1 -1
- package/dist/infrastructure/storage/state/observation/observationAudit.js +5 -1
- package/dist/infrastructure/storage/state/observation/observationAudit.js.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts +10 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.js +106 -20
- package/dist/infrastructure/storage/state/resolution/resolutionWriter.js.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.d.ts +9 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.js +3 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterContracts.js.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts +11 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.d.ts.map +1 -1
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js +35 -0
- package/dist/infrastructure/storage/state/resolution/resolutionWriterSql.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts +12 -4
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.js +46 -15
- package/dist/infrastructure/storage/sync/outbound/effectOutbox.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts +24 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js +1 -0
- package/dist/infrastructure/storage/sync/outbound/effectOutboxContracts.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts +9 -7
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js +44 -8
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSql.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts +3 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.d.ts.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js +35 -2
- package/dist/infrastructure/storage/sync/outbound/effectOutboxSupport.js.map +1 -1
- package/dist/infrastructure/storage/sync/outbound/reconciliationSql.js +1 -0
- package/dist/infrastructure/storage/sync/outbound/reconciliationSql.js.map +1 -1
- package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.d.ts +31 -0
- package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.d.ts.map +1 -0
- package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.js +92 -0
- package/dist/infrastructure/storage/sync/shared/spreadsheetAuthority.js.map +1 -0
- package/dist/infrastructure/storage/sync/shared/writerLease.js +3 -1
- package/dist/infrastructure/storage/sync/shared/writerLease.js.map +1 -1
- package/docs/advanced-sheets-gateway-concurrency-problem.md +434 -0
- package/docs/architecture.md +53 -11
- package/docs/ci.md +31 -14
- package/docs/google-sheets-sync-scaling-strategy.md +459 -0
- package/docs/quick-start.md +15 -1
- package/docs/sync-bulk-write-benchmark.md +520 -0
- package/docs/sync-observability.md +39 -3
- package/docs/write-and-synchronization-flow.md +76 -17
- package/package.json +1 -1
|
@@ -3,11 +3,17 @@ import { LOOKUP_RESULT_KINDS, presentValue } from "../../../../shared/state/inde
|
|
|
3
3
|
import { SYNC_TIMING_OPERATION_KINDS, SYNC_TIMING_SCOPES, } from "../../telemetry/syncTiming.js";
|
|
4
4
|
import { WORKER_ERROR_CODES } from "./SyncEffectWorkerConstants.js";
|
|
5
5
|
import { isPresent, lookupResult, } from "./SyncEffectWorkerHelpers.js";
|
|
6
|
-
import { completeApplied, completeFailure, } from "./SyncEffectWorkerTransitions.js";
|
|
6
|
+
import { completeApplied, completeFailure, recoverUnknownResults, } from "./SyncEffectWorkerTransitions.js";
|
|
7
7
|
import { emitGatewayTiming, emitWorkerTiming, } from "./SyncEffectWorkerTiming.js";
|
|
8
|
+
import { gatewayRouteKey } from "./SyncEffectWorkerRouting.js";
|
|
9
|
+
import { classifyTransportOutcome, TRANSPORT_OUTCOME_KINDS, } from "../../gateway/transportClassification.js";
|
|
8
10
|
/** Fails regular effects explicitly when the configured gateway is fast-only. */
|
|
9
11
|
export async function rejectUnsupportedGatewayEffects(storage, fence, items, report) {
|
|
10
12
|
for (const item of items) {
|
|
13
|
+
if (item.pending.status === "delivery_uncertain") {
|
|
14
|
+
await markUncertainWithoutRecovery(storage, fence, [item], report, "The configured gateway cannot probe an uncertain delivery yet.");
|
|
15
|
+
continue;
|
|
16
|
+
}
|
|
11
17
|
if (!isPresent(item.gatewayEffect)) {
|
|
12
18
|
await completeFailure(storage, fence, item, WORKER_ERROR_CODES.INVALID_EFFECT_PAYLOAD, item.invalidPayloadError, report);
|
|
13
19
|
continue;
|
|
@@ -16,45 +22,100 @@ export async function rejectUnsupportedGatewayEffects(storage, fence, items, rep
|
|
|
16
22
|
}
|
|
17
23
|
}
|
|
18
24
|
/**
|
|
19
|
-
*
|
|
25
|
+
* Handles a failed remote dispatch at the transport boundary.
|
|
20
26
|
*
|
|
21
|
-
* A
|
|
22
|
-
*
|
|
23
|
-
*
|
|
27
|
+
* A thrown batch-level dispatch error is not per-effect rejection evidence for
|
|
28
|
+
* an uncertain transport. Explicit structured remote failures are different:
|
|
29
|
+
* the Gateway has returned a verified rejection, so they close the effects in
|
|
30
|
+
* the terminal failure path rather than entering recovery.
|
|
31
|
+
*/
|
|
32
|
+
export async function handleGatewayDispatchError(options, storage, fence, items, report, outcome, fullGateway, beforeRecovery, onUncertainWithoutRecovery) {
|
|
33
|
+
if (outcome.kind === TRANSPORT_OUTCOME_KINDS.EXPLICIT_REMOTE_FAILURE) {
|
|
34
|
+
for (const item of items) {
|
|
35
|
+
await completeFailure(storage, fence, item, WORKER_ERROR_CODES.GATEWAY_REMOTE_ERROR, presentValue(outcome.message), report);
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (fullGateway === undefined) {
|
|
40
|
+
if (onUncertainWithoutRecovery !== undefined) {
|
|
41
|
+
await onUncertainWithoutRecovery();
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
await markUncertainWithoutRecovery(storage, fence, items, report, outcome.message);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (beforeRecovery === undefined || await beforeRecovery()) {
|
|
48
|
+
await recoverUnknownResults({ ...options, gateway: fullGateway }, storage, fence, items, report);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Dispatches append-only rows through the idempotent Gateway batch operation.
|
|
53
|
+
* A lost response is still returned to recovery; the Gateway receipt batch lets
|
|
54
|
+
* the next attempt classify an already committed write without appending again.
|
|
24
55
|
*/
|
|
25
|
-
export async function dispatchFastAppendGroup(options, storage, fence, group, report) {
|
|
56
|
+
export async function dispatchFastAppendGroup(options, storage, fence, group, report, fullGateway, beforeRecovery) {
|
|
26
57
|
let response;
|
|
27
58
|
const gatewayStartedAt = Date.now();
|
|
59
|
+
const routeKey = gatewayRouteKey(group.request);
|
|
60
|
+
const batchLimit = options.batchController?.beginDispatch(routeKey, gatewayStartedAt) ?? group.items.length;
|
|
28
61
|
try {
|
|
29
62
|
response = await options.gateway.fastAppendRows(group.request);
|
|
30
63
|
}
|
|
31
|
-
catch {
|
|
64
|
+
catch (error) {
|
|
65
|
+
const outcome = classifyTransportOutcome(error);
|
|
66
|
+
options.batchController?.observe(routeKey, {
|
|
67
|
+
durationMs: Date.now() - gatewayStartedAt,
|
|
68
|
+
responseSucceeded: false,
|
|
69
|
+
responseLoss: outcome.kind === TRANSPORT_OUTCOME_KINDS.DELIVERY_UNCERTAIN,
|
|
70
|
+
});
|
|
71
|
+
const failedDurationMs = Date.now() - gatewayStartedAt;
|
|
32
72
|
emitWorkerTiming(options, {
|
|
33
73
|
scope: SYNC_TIMING_SCOPES.WORKER,
|
|
34
74
|
phase: "append_gateway_dispatch",
|
|
35
|
-
durationMs:
|
|
75
|
+
durationMs: failedDurationMs,
|
|
36
76
|
operationKinds: [SYNC_TIMING_OPERATION_KINDS.APPEND],
|
|
37
77
|
operationCounts: { append: group.items.length, update: 0, delete: 0 },
|
|
78
|
+
routeKey,
|
|
79
|
+
batchLimit,
|
|
80
|
+
responseSucceeded: false,
|
|
38
81
|
});
|
|
39
|
-
|
|
82
|
+
const resultFence = {
|
|
83
|
+
...fence,
|
|
84
|
+
now: options.clock?.() ?? fence.now + Math.max(0, Date.now() - gatewayStartedAt),
|
|
85
|
+
};
|
|
86
|
+
await handleGatewayDispatchError(options, storage, resultFence, group.items, report, outcome, fullGateway, beforeRecovery, () => markFastAppendUncertain(storage, resultFence, group.items, report, outcome.message));
|
|
40
87
|
return;
|
|
41
88
|
}
|
|
89
|
+
const durationMs = Date.now() - gatewayStartedAt;
|
|
90
|
+
const resultFence = {
|
|
91
|
+
...fence,
|
|
92
|
+
now: options.clock?.() ?? fence.now + Math.max(0, Date.now() - gatewayStartedAt),
|
|
93
|
+
};
|
|
94
|
+
options.batchController?.observe(routeKey, {
|
|
95
|
+
durationMs,
|
|
96
|
+
responseSucceeded: response.results.length === group.items.length && !response.hasMore,
|
|
97
|
+
responseLoss: response.results.length !== group.items.length || response.hasMore,
|
|
98
|
+
});
|
|
42
99
|
emitGatewayTiming(options, response.timing);
|
|
43
100
|
emitWorkerTiming(options, {
|
|
44
101
|
scope: SYNC_TIMING_SCOPES.WORKER,
|
|
45
102
|
phase: "append_gateway_dispatch",
|
|
46
|
-
durationMs
|
|
103
|
+
durationMs,
|
|
47
104
|
operationKinds: [SYNC_TIMING_OPERATION_KINDS.APPEND],
|
|
48
105
|
operationCounts: { append: group.items.length, update: 0, delete: 0 },
|
|
106
|
+
routeKey,
|
|
107
|
+
batchLimit,
|
|
108
|
+
responseSucceeded: response.results.length === group.items.length && !response.hasMore,
|
|
49
109
|
});
|
|
50
110
|
const resultPersistenceStartedAt = Date.now();
|
|
51
111
|
const byEffectId = new Map(response.results.map((result) => [result.effectId, result]));
|
|
52
112
|
const deferredEffectIds = new Set();
|
|
113
|
+
const recoveryItems = [];
|
|
53
114
|
for (const item of group.items) {
|
|
54
115
|
if (byEffectId.has(item.pending.effect_id) || !response.hasMore)
|
|
55
116
|
continue;
|
|
56
117
|
if (await storage.releaseUnprocessedEffect({
|
|
57
|
-
...
|
|
118
|
+
...resultFence,
|
|
58
119
|
effectId: item.pending.effect_id,
|
|
59
120
|
claimToken: item.claimToken,
|
|
60
121
|
})) {
|
|
@@ -67,14 +128,33 @@ export async function dispatchFastAppendGroup(options, storage, fence, group, re
|
|
|
67
128
|
continue;
|
|
68
129
|
const result = lookupResult(byEffectId.get(item.pending.effect_id));
|
|
69
130
|
if (result.kind === LOOKUP_RESULT_KINDS.NOT_FOUND) {
|
|
70
|
-
await requeueFastAppendItems(storage,
|
|
131
|
+
await requeueFastAppendItems(storage, resultFence, [item], report);
|
|
71
132
|
continue;
|
|
72
133
|
}
|
|
73
134
|
if (!isPresent(item.gatewayEffect)) {
|
|
74
|
-
await requeueFastAppendItems(storage,
|
|
135
|
+
await requeueFastAppendItems(storage, resultFence, [item], report);
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
if (!hasReceiptBackedVisibleEvidence(result.value)) {
|
|
139
|
+
// A fast-append status is not enough to close a worker-owned effect. The
|
|
140
|
+
// append receipt must provide the remote visible revision and hash; do
|
|
141
|
+
// not synthesize either value from local expectations or payload data.
|
|
142
|
+
recoveryItems.push(item);
|
|
75
143
|
continue;
|
|
76
144
|
}
|
|
77
|
-
await completeApplied(storage,
|
|
145
|
+
await completeApplied(storage, resultFence, item, presentValue(result.value.visibleRevision), presentValue(result.value.visibleHash), report);
|
|
146
|
+
}
|
|
147
|
+
if (recoveryItems.length > 0) {
|
|
148
|
+
const recoveryFence = {
|
|
149
|
+
...resultFence,
|
|
150
|
+
now: options.clock?.() ?? resultFence.now,
|
|
151
|
+
};
|
|
152
|
+
if (fullGateway !== undefined && (beforeRecovery === undefined || await beforeRecovery())) {
|
|
153
|
+
await recoverUnknownResults({ ...options, gateway: fullGateway }, storage, recoveryFence, recoveryItems, report);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
await markFastAppendUncertain(storage, recoveryFence, recoveryItems, report, "Fast append did not return receipt-backed visible evidence.");
|
|
157
|
+
}
|
|
78
158
|
}
|
|
79
159
|
emitWorkerTiming(options, {
|
|
80
160
|
scope: SYNC_TIMING_SCOPES.WORKER,
|
|
@@ -84,7 +164,31 @@ export async function dispatchFastAppendGroup(options, storage, fence, group, re
|
|
|
84
164
|
operationCounts: { append: group.items.length, update: 0, delete: 0 },
|
|
85
165
|
});
|
|
86
166
|
}
|
|
167
|
+
function hasReceiptBackedVisibleEvidence(result) {
|
|
168
|
+
return typeof result.visibleRevision === "number" &&
|
|
169
|
+
Number.isSafeInteger(result.visibleRevision) &&
|
|
170
|
+
result.visibleRevision >= 1 &&
|
|
171
|
+
typeof result.visibleHash === "string" &&
|
|
172
|
+
result.visibleHash.length > 0;
|
|
173
|
+
}
|
|
87
174
|
/** Returns a response-lost fast append to pending for reconciliation-backed retry. */
|
|
175
|
+
async function markFastAppendUncertain(storage, fence, items, report, message) {
|
|
176
|
+
await markUncertainWithoutRecovery(storage, fence, items, report, message);
|
|
177
|
+
}
|
|
178
|
+
async function markUncertainWithoutRecovery(storage, fence, items, report, message) {
|
|
179
|
+
for (const item of items) {
|
|
180
|
+
if (await storage.markDeliveryUncertain({
|
|
181
|
+
...fence,
|
|
182
|
+
effectId: item.pending.effect_id,
|
|
183
|
+
claimToken: item.claimToken,
|
|
184
|
+
uncertainSince: item.pending.uncertain_since ?? fence.now,
|
|
185
|
+
nextProbeAt: fence.now + 1_000,
|
|
186
|
+
lastErrorCode: WORKER_ERROR_CODES.DELIVERY_UNCERTAIN_REQUIRES_PROBE,
|
|
187
|
+
lastErrorMessage: message,
|
|
188
|
+
}))
|
|
189
|
+
report.deferred += 1;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
88
192
|
export async function requeueFastAppendItems(storage, fence, items, report) {
|
|
89
193
|
for (const item of items) {
|
|
90
194
|
if (await storage.retryClaimedEffect({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncEffectWorkerDispatch.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerDispatch.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAGnF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"SyncEffectWorkerDispatch.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerDispatch.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAGnF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAMtF,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,GACnB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EACL,SAAS,EACT,YAAY,GACb,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,eAAe,EACf,eAAe,EACf,qBAAqB,GACtB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EACL,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GAExB,MAAM,0CAA0C,CAAC;AAQlD,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,OAA4B,EAC5B,KAAqB,EACrB,KAA+B,EAC/B,MAAqB;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,oBAAoB,EAAE,CAAC;YACjD,MAAM,4BAA4B,CAChC,OAAO,EACP,KAAK,EACL,CAAC,IAAI,CAAC,EACN,MAAM,EACN,gEAAgE,CACjE,CAAC;YACF,SAAS;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,MAAM,eAAe,CACnB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,kBAAkB,CAAC,sBAAsB,EACzC,IAAI,CAAC,mBAAmB,EACxB,MAAM,CACP,CAAC;YACF,SAAS;QACX,CAAC;QACD,MAAM,eAAe,CACnB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,kBAAkB,CAAC,0BAA0B,EAC7C,YAAY,CACV,uGAAuG,CACxG,EACD,MAAM,CACP,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,OAAoC,EACpC,OAA4B,EAC5B,KAAqB,EACrB,KAA+B,EAC/B,MAAqB,EACrB,OAAyB,EACzB,WAAyC,EACzC,cAAuC,EACvC,0BAAgD;IAEhD,IAAI,OAAO,CAAC,IAAI,KAAK,uBAAuB,CAAC,uBAAuB,EAAE,CAAC;QACrE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,eAAe,CACnB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,kBAAkB,CAAC,oBAAoB,EACvC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,EAC7B,MAAM,CACP,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IACD,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,IAAI,0BAA0B,KAAK,SAAS,EAAE,CAAC;YAC7C,MAAM,0BAA0B,EAAE,CAAC;YACnC,OAAO;QACT,CAAC;QACD,MAAM,4BAA4B,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IACD,IAAI,cAAc,KAAK,SAAS,IAAI,MAAM,cAAc,EAAE,EAAE,CAAC;QAC3D,MAAM,qBAAqB,CACzB,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,EACpC,OAAO,EACP,KAAK,EACL,KAAK,EACL,MAAM,CACP,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAoC,EACpC,OAA4B,EAC5B,KAAqB,EACrB,KAGC,EACD,MAAqB,EACrB,WAAyC,EACzC,cAAuC;IAEvC,IAAI,QAAwE,CAAC;IAC7E,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACpC,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,OAAO,CAAC,eAAe,EAAE,aAAa,CAAC,QAAQ,EAAE,gBAAgB,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IAC5G,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,EAAE;YACzC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB;YACzC,iBAAiB,EAAE,KAAK;YACxB,YAAY,EAAE,OAAO,CAAC,IAAI,KAAK,uBAAuB,CAAC,kBAAkB;SAC1E,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;QACvD,gBAAgB,CAAC,OAAO,EAAE;YACxB,KAAK,EAAE,kBAAkB,CAAC,MAAM;YAChC,KAAK,EAAE,yBAAyB;YAChC,UAAU,EAAE,gBAAgB;YAC5B,cAAc,EAAE,CAAC,2BAA2B,CAAC,MAAM,CAAC;YACpD,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;YACrE,QAAQ;YACR,UAAU;YACV,iBAAiB,EAAE,KAAK;SACzB,CAAC,CAAC;QACH,MAAM,WAAW,GAAG;YAClB,GAAG,KAAK;YACR,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;SACjF,CAAC;QACF,MAAM,0BAA0B,CAC9B,OAAO,EACP,OAAO,EACP,WAAW,EACX,KAAK,CAAC,KAAK,EACX,MAAM,EACN,OAAO,EACP,WAAW,EACX,cAAc,EACd,GAAG,EAAE,CAAC,uBAAuB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAC1F,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;IACjD,MAAM,WAAW,GAAG;QAClB,GAAG,KAAK;QACR,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC;KACjF,CAAC;IACF,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,QAAQ,EAAE;QACzC,UAAU;QACV,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO;QACtF,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,QAAQ,CAAC,OAAO;KACjF,CAAC,CAAC;IACH,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,gBAAgB,CAAC,OAAO,EAAE;QACxB,KAAK,EAAE,kBAAkB,CAAC,MAAM;QAChC,KAAK,EAAE,yBAAyB;QAChC,UAAU;QACV,cAAc,EAAE,CAAC,2BAA2B,CAAC,MAAM,CAAC;QACpD,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;QACrE,QAAQ;QACR,UAAU;QACV,iBAAiB,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO;KACvF,CAAC,CAAC;IAEH,MAAM,0BAA0B,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACxF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC5C,MAAM,aAAa,GAAoB,EAAE,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,SAAS;QAC1E,IAAI,MAAM,OAAO,CAAC,wBAAwB,CAAC;YACzC,GAAG,WAAW;YACd,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YAChC,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,EAAE,CAAC;YACH,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC9C,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,IAAI,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,SAAS;QAC5D,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;YAClD,MAAM,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACnE,SAAS;QACX,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACnC,MAAM,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;YACnE,SAAS;QACX,CAAC;QACD,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,yEAAyE;YACzE,uEAAuE;YACvE,uEAAuE;YACvE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS;QACX,CAAC;QACD,MAAM,eAAe,CACnB,OAAO,EACP,WAAW,EACX,IAAI,EACJ,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAC1C,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EACtC,MAAM,CACP,CAAC;IACJ,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,aAAa,GAAG;YACpB,GAAG,WAAW;YACd,GAAG,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,WAAW,CAAC,GAAG;SAC1C,CAAC;QACF,IAAI,WAAW,KAAK,SAAS,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,cAAc,EAAE,CAAC,EAAE,CAAC;YAC1F,MAAM,qBAAqB,CACzB,EAAE,GAAG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,EACpC,OAAO,EACP,aAAa,EACb,aAAa,EACb,MAAM,CACP,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,uBAAuB,CAC3B,OAAO,EACP,aAAa,EACb,aAAa,EACb,MAAM,EACN,6DAA6D,CAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IACD,gBAAgB,CAAC,OAAO,EAAE;QACxB,KAAK,EAAE,kBAAkB,CAAC,MAAM;QAChC,KAAK,EAAE,2BAA2B;QAClC,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,0BAA0B;QACnD,cAAc,EAAE,CAAC,2BAA2B,CAAC,MAAM,CAAC;QACpD,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE;KACtE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,+BAA+B,CACtC,MAAyF;IAEzF,OAAO,OAAO,MAAM,CAAC,eAAe,KAAK,QAAQ;QAC/C,MAAM,CAAC,aAAa,CAAC,MAAM,CAAC,eAAe,CAAC;QAC5C,MAAM,CAAC,eAAe,IAAI,CAAC;QAC3B,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ;QACtC,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,sFAAsF;AACtF,KAAK,UAAU,uBAAuB,CACpC,OAA4B,EAC5B,KAAqB,EACrB,KAA+B,EAC/B,MAAqB,EACrB,OAAe;IAEf,MAAM,4BAA4B,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,4BAA4B,CACzC,OAA4B,EAC5B,KAAqB,EACrB,KAA+B,EAC/B,MAAqB,EACrB,OAAe;IAEf,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,MAAM,OAAO,CAAC,qBAAqB,CAAC;YACtC,GAAG,KAAK;YACR,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YAChC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC,GAAG;YACzD,WAAW,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK;YAC9B,aAAa,EAAE,kBAAkB,CAAC,iCAAiC;YACnE,gBAAgB,EAAE,OAAO;SAC1B,CAAC;YAAE,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAA4B,EAC5B,KAAqB,EACrB,KAA+B,EAC/B,MAAqB;IAErB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,MAAM,OAAO,CAAC,kBAAkB,CAAC;YACnC,GAAG,KAAK;YACR,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS;YAChC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,aAAa,EAAE,kBAAkB,CAAC,uBAAuB;YACzD,gBAAgB,EAAE,sFAAsF;SACzG,CAAC,EAAE,CAAC;YACH,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;YACrB,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,25 +1,46 @@
|
|
|
1
1
|
/** Effect conversion, request grouping, and routing predicates. */
|
|
2
2
|
import type { EffectTargetKind } from "../../../../domain/index.js";
|
|
3
3
|
import type { PendingEffect, WriterLease, FencingContext } from "../../../../infrastructure/storage/index.js";
|
|
4
|
-
import type { ApplySyncEffectsRequest, FastAppendRowsRequest, ReadSyncEffectPostconditionsRequest, SyncGatewayEffect, SyncGatewayEffectResult, SyncProjection } from "../../gateway/syncGateway.js";
|
|
4
|
+
import type { ApplySyncEffectsRequest, FastAppendRowsRequest, ReadSyncEffectPostconditionsRequest, SyncGatewayAuthority, SyncGatewayEffect, SyncGatewayEffectResult, SyncProjection } from "../../gateway/syncGateway.js";
|
|
5
5
|
import type { ClaimedEffect } from "./SyncEffectWorker.js";
|
|
6
6
|
/** Accepts either inline read-back or a flushed-write acknowledgement. */
|
|
7
7
|
export declare function isSuccessfulGatewayPostcondition(status: SyncGatewayEffectResult["postcondition"]): boolean;
|
|
8
8
|
export declare function toGatewayEffect(effect: PendingEffect): SyncGatewayEffect;
|
|
9
|
-
export declare function groupByGatewayRequest(items: readonly ClaimedEffect[]): readonly
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
}[];
|
|
13
|
-
/** Groups append-only system effects into one fast gateway request per route. */
|
|
14
|
-
export declare function groupByFastAppendRequest(items: readonly ClaimedEffect[]): readonly {
|
|
9
|
+
export declare function groupByGatewayRequest(items: readonly ClaimedEffect[], authority?: SyncGatewayAuthority): readonly GatewayEffectGroup[];
|
|
10
|
+
/** One append-only route paired with the claimed effects it represents. */
|
|
11
|
+
export interface FastAppendGatewayGroup {
|
|
15
12
|
readonly request: FastAppendRowsRequest;
|
|
16
13
|
readonly items: readonly ClaimedEffect[];
|
|
17
|
-
}
|
|
14
|
+
}
|
|
15
|
+
/** Groups append-only effects into one fast gateway request per route. */
|
|
16
|
+
export declare function groupByFastAppendRequest(items: readonly ClaimedEffect[], authority?: SyncGatewayAuthority): readonly FastAppendGatewayGroup[];
|
|
17
|
+
/** Splits append groups using the same adaptive route limit as regular effects. */
|
|
18
|
+
export declare function chunkFastAppendGroups(groups: readonly FastAppendGatewayGroup[], limit: number | ((group: FastAppendGatewayGroup) => number)): readonly FastAppendGatewayGroup[];
|
|
18
19
|
/** Groups postcondition reads so each group performs one remote Sheet scan. */
|
|
19
|
-
export declare function groupByGatewayPostconditionRequest(items: readonly ClaimedEffect[]): readonly {
|
|
20
|
+
export declare function groupByGatewayPostconditionRequest(items: readonly ClaimedEffect[], authority?: SyncGatewayAuthority): readonly {
|
|
20
21
|
readonly request: ReadSyncEffectPostconditionsRequest;
|
|
21
22
|
readonly items: readonly ClaimedEffect[];
|
|
22
23
|
}[];
|
|
24
|
+
/** Builds the stable grouping key shared by all gateway operations on one route. */
|
|
25
|
+
export declare function gatewayRouteKey(route: SyncGatewayEffect | ApplySyncEffectsRequest | FastAppendRowsRequest): string;
|
|
26
|
+
/**
|
|
27
|
+
* Splits each physical-route group into sub-batches no larger than the Apps
|
|
28
|
+
* Script bounded effect batch so one `applyEffects` call returns a complete
|
|
29
|
+
* result set instead of a `hasMore` partial prefix.
|
|
30
|
+
*
|
|
31
|
+
* The physical-route grouping and the per-target predecessor ordering of the
|
|
32
|
+
* supplied items are preserved: every effect stays on its original route, and
|
|
33
|
+
* each sub-batch keeps the order of the ready selection. Effects in one ready
|
|
34
|
+
* selection target distinct logical targets (the outbox only marks the
|
|
35
|
+
* earliest non-applied effect per target ready), so sub-batching never
|
|
36
|
+
* reorders effects that depend on one another.
|
|
37
|
+
*/
|
|
38
|
+
export declare function chunkGatewayEffectGroups(groups: readonly GatewayEffectGroup[], limit?: number | ((group: GatewayEffectGroup) => number)): readonly GatewayEffectGroup[];
|
|
39
|
+
/** One physical route's effects paired with their gateway request. */
|
|
40
|
+
export interface GatewayEffectGroup {
|
|
41
|
+
readonly request: ApplySyncEffectsRequest;
|
|
42
|
+
readonly items: readonly ClaimedEffect[];
|
|
43
|
+
}
|
|
23
44
|
export declare function isSyncEffectKind(value: string): value is SyncGatewayEffect["effectKind"];
|
|
24
45
|
export declare function isCandidateProtectingUserInputEffect(effect: SyncGatewayEffect): boolean;
|
|
25
46
|
/** Selects only new System_State entity rows for the append-only fast path. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncEffectWorkerRouting.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerRouting.ts"],"names":[],"mappings":"AAAA,mEAAmE;
|
|
1
|
+
{"version":3,"file":"SyncEffectWorkerRouting.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerRouting.ts"],"names":[],"mappings":"AAAA,mEAAmE;AAMnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,cAAc,EACf,MAAM,6CAA6C,CAAC;AAErD,OAAO,KAAK,EACV,uBAAuB,EACvB,qBAAqB,EACrB,mCAAmC,EACnC,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACf,MAAM,8BAA8B,CAAC;AAiBtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,0EAA0E;AAC1E,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,uBAAuB,CAAC,eAAe,CAAC,GAC/C,OAAO,CAGT;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAyBxE;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,SAAS,CAAC,EAAE,oBAAoB,GAC/B,SAAS,kBAAkB,EAAE,CA+B/B;AAED,2EAA2E;AAC3E,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED,0EAA0E;AAC1E,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,SAAS,CAAC,EAAE,oBAAoB,GAC/B,SAAS,sBAAsB,EAAE,CAmCnC;AAED,mFAAmF;AACnF,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,sBAAsB,EAAE,EACzC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,sBAAsB,KAAK,MAAM,CAAC,GAC1D,SAAS,sBAAsB,EAAE,CAqBnC;AAED,+EAA+E;AAC/E,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,SAAS,CAAC,EAAE,oBAAoB,GAC/B,SAAS;IACV,QAAQ,CAAC,OAAO,EAAE,mCAAmC,CAAC;IACtD,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C,EAAE,CAgCF;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAC7B,KAAK,EAAE,iBAAiB,GAAG,uBAAuB,GAAG,qBAAqB,GACzE,MAAM,CAKR;AAQD;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,kBAAkB,EAAE,EACrC,KAAK,GAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,kBAAkB,KAAK,MAAM,CAA8B,GACnF,SAAS,kBAAkB,EAAE,CAgB/B;AA0BD,sEAAsE;AACtE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,uBAAuB,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,SAAS,aAAa,EAAE,CAAC;CAC1C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAOxF;AAED,wBAAgB,oCAAoC,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAGvF;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAgBlE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,cAAc,CAIvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,gBAAgB,CAK3E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAO9E"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/** Effect conversion, request grouping, and routing predicates. */
|
|
2
|
-
import { NON_NEGATIVE_SAFE_INTEGER_MINIMUM } from "../../../../domain/index.js";
|
|
2
|
+
import { NON_NEGATIVE_SAFE_INTEGER_MINIMUM, POSITIVE_SAFE_INTEGER_MINIMUM, } from "../../../../domain/index.js";
|
|
3
3
|
import { fromSqlNullable } from "../../../../infrastructure/storage/sqlite/sqlState.js";
|
|
4
4
|
import { LOOKUP_RESULT_KINDS } from "../../../../shared/state/constants.js";
|
|
5
5
|
import { parseSyncProjectionEffectPayload } from "../../gateway/syncGateway.js";
|
|
6
6
|
import { SYNC_GATEWAY_POSTCONDITION_MODES, SYNC_GATEWAY_POSTCONDITION_STATUSES, SYNC_GATEWAY_PROJECTIONS, } from "../../gateway/constants.js";
|
|
7
|
-
import { EFFECT_TARGET_KINDS, SYNC_EFFECT_KINDS } from "./SyncEffectWorkerConstants.js";
|
|
7
|
+
import { EFFECT_TARGET_KINDS, GATEWAY_EFFECT_BATCH_LIMIT, SYNC_EFFECT_KINDS, } from "./SyncEffectWorkerConstants.js";
|
|
8
8
|
import { isPresent, lookupResult, throwWorkerError, } from "./SyncEffectWorkerHelpers.js";
|
|
9
9
|
/** Accepts either inline read-back or a flushed-write acknowledgement. */
|
|
10
10
|
export function isSuccessfulGatewayPostcondition(status) {
|
|
@@ -37,7 +37,7 @@ export function toGatewayEffect(effect) {
|
|
|
37
37
|
payload: parseSyncProjectionEffectPayload(effect.payload_json),
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
-
export function groupByGatewayRequest(items) {
|
|
40
|
+
export function groupByGatewayRequest(items, authority) {
|
|
41
41
|
const groups = new Map();
|
|
42
42
|
for (const item of items) {
|
|
43
43
|
const effect = item.gatewayEffect;
|
|
@@ -49,6 +49,7 @@ export function groupByGatewayRequest(items) {
|
|
|
49
49
|
groups.set(key, {
|
|
50
50
|
request: {
|
|
51
51
|
physicalSheetId: effect.value.physicalSheetId,
|
|
52
|
+
...(authority === undefined ? {} : { authority }),
|
|
52
53
|
sheetName: effect.value.payload.sheetName,
|
|
53
54
|
registeredRange: effect.value.payload.registeredRange,
|
|
54
55
|
projection: effect.value.projection,
|
|
@@ -70,8 +71,8 @@ export function groupByGatewayRequest(items) {
|
|
|
70
71
|
}
|
|
71
72
|
return [...groups.values()];
|
|
72
73
|
}
|
|
73
|
-
/** Groups append-only
|
|
74
|
-
export function groupByFastAppendRequest(items) {
|
|
74
|
+
/** Groups append-only effects into one fast gateway request per route. */
|
|
75
|
+
export function groupByFastAppendRequest(items, authority) {
|
|
75
76
|
const groups = new Map();
|
|
76
77
|
for (const item of items) {
|
|
77
78
|
const effect = item.gatewayEffect;
|
|
@@ -80,6 +81,8 @@ export function groupByFastAppendRequest(items) {
|
|
|
80
81
|
const key = gatewayRouteKey(effect.value);
|
|
81
82
|
const row = {
|
|
82
83
|
effectId: effect.value.effectId,
|
|
84
|
+
payloadHash: effect.value.payloadHash,
|
|
85
|
+
anchor: effect.value.payload.targetAnchor,
|
|
83
86
|
fields: effect.value.payload.fields,
|
|
84
87
|
};
|
|
85
88
|
const existing = lookupResult(groups.get(key));
|
|
@@ -87,6 +90,7 @@ export function groupByFastAppendRequest(items) {
|
|
|
87
90
|
groups.set(key, {
|
|
88
91
|
request: {
|
|
89
92
|
physicalSheetId: effect.value.physicalSheetId,
|
|
93
|
+
...(authority === undefined ? {} : { authority }),
|
|
90
94
|
sheetName: effect.value.payload.sheetName,
|
|
91
95
|
registeredRange: effect.value.payload.registeredRange,
|
|
92
96
|
projection: effect.value.projection,
|
|
@@ -106,8 +110,31 @@ export function groupByFastAppendRequest(items) {
|
|
|
106
110
|
}
|
|
107
111
|
return [...groups.values()];
|
|
108
112
|
}
|
|
113
|
+
/** Splits append groups using the same adaptive route limit as regular effects. */
|
|
114
|
+
export function chunkFastAppendGroups(groups, limit) {
|
|
115
|
+
const chunked = [];
|
|
116
|
+
for (const group of groups) {
|
|
117
|
+
const groupLimit = typeof limit === "function" ? limit(group) : limit;
|
|
118
|
+
requireBatchLimit(groupLimit);
|
|
119
|
+
if (group.items.length <= groupLimit) {
|
|
120
|
+
chunked.push(group);
|
|
121
|
+
continue;
|
|
122
|
+
}
|
|
123
|
+
for (let start = 0; start < group.items.length; start += groupLimit) {
|
|
124
|
+
const items = group.items.slice(start, start + groupLimit);
|
|
125
|
+
chunked.push({
|
|
126
|
+
request: {
|
|
127
|
+
...group.request,
|
|
128
|
+
rows: group.request.rows.slice(start, start + groupLimit),
|
|
129
|
+
},
|
|
130
|
+
items,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return chunked;
|
|
135
|
+
}
|
|
109
136
|
/** Groups postcondition reads so each group performs one remote Sheet scan. */
|
|
110
|
-
export function groupByGatewayPostconditionRequest(items) {
|
|
137
|
+
export function groupByGatewayPostconditionRequest(items, authority) {
|
|
111
138
|
const groups = new Map();
|
|
112
139
|
for (const item of items) {
|
|
113
140
|
const effect = item.gatewayEffect;
|
|
@@ -119,6 +146,7 @@ export function groupByGatewayPostconditionRequest(items) {
|
|
|
119
146
|
groups.set(key, {
|
|
120
147
|
request: {
|
|
121
148
|
physicalSheetId: effect.value.physicalSheetId,
|
|
149
|
+
...(authority === undefined ? {} : { authority }),
|
|
122
150
|
sheetName: effect.value.payload.sheetName,
|
|
123
151
|
registeredRange: effect.value.payload.registeredRange,
|
|
124
152
|
projection: effect.value.projection,
|
|
@@ -139,14 +167,66 @@ export function groupByGatewayPostconditionRequest(items) {
|
|
|
139
167
|
return [...groups.values()];
|
|
140
168
|
}
|
|
141
169
|
/** Builds the stable grouping key shared by all gateway operations on one route. */
|
|
142
|
-
function gatewayRouteKey(
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
170
|
+
export function gatewayRouteKey(route) {
|
|
171
|
+
const sheetName = "payload" in route ? route.payload.sheetName : route.sheetName;
|
|
172
|
+
const registeredRange = "payload" in route ? route.payload.registeredRange : route.registeredRange;
|
|
173
|
+
const schemaVersion = "payload" in route ? route.payload.schemaVersion : route.schemaVersion;
|
|
174
|
+
return [route.physicalSheetId, sheetName, registeredRange, route.projection, schemaVersion].join("\u0000");
|
|
175
|
+
}
|
|
176
|
+
function requireBatchLimit(value) {
|
|
177
|
+
if (!Number.isSafeInteger(value) || value < POSITIVE_SAFE_INTEGER_MINIMUM) {
|
|
178
|
+
throwWorkerError("gateway effect batch limit must be a positive safe integer");
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Splits each physical-route group into sub-batches no larger than the Apps
|
|
183
|
+
* Script bounded effect batch so one `applyEffects` call returns a complete
|
|
184
|
+
* result set instead of a `hasMore` partial prefix.
|
|
185
|
+
*
|
|
186
|
+
* The physical-route grouping and the per-target predecessor ordering of the
|
|
187
|
+
* supplied items are preserved: every effect stays on its original route, and
|
|
188
|
+
* each sub-batch keeps the order of the ready selection. Effects in one ready
|
|
189
|
+
* selection target distinct logical targets (the outbox only marks the
|
|
190
|
+
* earliest non-applied effect per target ready), so sub-batching never
|
|
191
|
+
* reorders effects that depend on one another.
|
|
192
|
+
*/
|
|
193
|
+
export function chunkGatewayEffectGroups(groups, limit = GATEWAY_EFFECT_BATCH_LIMIT) {
|
|
194
|
+
if (groups.length === 0)
|
|
195
|
+
return groups;
|
|
196
|
+
const chunked = [];
|
|
197
|
+
for (const group of groups) {
|
|
198
|
+
const groupLimit = typeof limit === "function" ? limit(group) : limit;
|
|
199
|
+
requireBatchLimit(groupLimit);
|
|
200
|
+
if (group.items.length <= groupLimit) {
|
|
201
|
+
chunked.push(group);
|
|
202
|
+
continue;
|
|
203
|
+
}
|
|
204
|
+
for (let start = 0; start < group.items.length; start += groupLimit) {
|
|
205
|
+
const batchItems = group.items.slice(start, start + groupLimit);
|
|
206
|
+
chunked.push({ request: sliceApplyEffectsRequest(group.request, batchItems), items: batchItems });
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return chunked;
|
|
210
|
+
}
|
|
211
|
+
/** Builds a sub-batch request carrying only the supplied effect evidence. */
|
|
212
|
+
function sliceApplyEffectsRequest(request, items) {
|
|
213
|
+
const effects = [];
|
|
214
|
+
for (const item of items) {
|
|
215
|
+
if (!isPresent(item.gatewayEffect)) {
|
|
216
|
+
throwWorkerError("gateway effect batch item is missing its gateway effect");
|
|
217
|
+
}
|
|
218
|
+
effects.push(item.gatewayEffect.value);
|
|
219
|
+
}
|
|
220
|
+
return {
|
|
221
|
+
physicalSheetId: request.physicalSheetId,
|
|
222
|
+
...(request.authority === undefined ? {} : { authority: request.authority }),
|
|
223
|
+
sheetName: request.sheetName,
|
|
224
|
+
registeredRange: request.registeredRange,
|
|
225
|
+
projection: request.projection,
|
|
226
|
+
schemaVersion: request.schemaVersion,
|
|
227
|
+
postconditionMode: request.postconditionMode ?? SYNC_GATEWAY_POSTCONDITION_MODES.DEFERRED,
|
|
228
|
+
effects,
|
|
229
|
+
};
|
|
150
230
|
}
|
|
151
231
|
export function isSyncEffectKind(value) {
|
|
152
232
|
return value === SYNC_EFFECT_KINDS.SYSTEM_PROJECTION ||
|
|
@@ -165,12 +245,16 @@ export function isFastAppendCandidate(item) {
|
|
|
165
245
|
if (!isPresent(item.gatewayEffect))
|
|
166
246
|
return false;
|
|
167
247
|
const effect = item.gatewayEffect.value;
|
|
168
|
-
|
|
169
|
-
effect.projection === SYNC_GATEWAY_PROJECTIONS.SYSTEM_STATE &&
|
|
170
|
-
effect.targetKind === EFFECT_TARGET_KINDS.ENTITY &&
|
|
171
|
-
effect.payload.createIfMissing &&
|
|
248
|
+
const emptyVisibleBaseline = effect.payload.createIfMissing &&
|
|
172
249
|
effect.expectedVisibleRevision === NON_NEGATIVE_SAFE_INTEGER_MINIMUM &&
|
|
173
250
|
effect.expectedVisibleHash === "";
|
|
251
|
+
if (!emptyVisibleBaseline)
|
|
252
|
+
return false;
|
|
253
|
+
return (effect.effectKind === SYNC_EFFECT_KINDS.SYSTEM_PROJECTION &&
|
|
254
|
+
effect.projection === SYNC_GATEWAY_PROJECTIONS.SYSTEM_STATE &&
|
|
255
|
+
effect.targetKind === EFFECT_TARGET_KINDS.ENTITY) || (effect.effectKind === SYNC_EFFECT_KINDS.RESOLUTION_PROJECTION &&
|
|
256
|
+
effect.projection === SYNC_GATEWAY_PROJECTIONS.SYNC_CONFLICTS &&
|
|
257
|
+
effect.targetKind === EFFECT_TARGET_KINDS.CONFLICT);
|
|
174
258
|
}
|
|
175
259
|
export function isSyncProjection(value) {
|
|
176
260
|
return value === SYNC_GATEWAY_PROJECTIONS.USER_INPUT ||
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncEffectWorkerRouting.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerRouting.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SyncEffectWorkerRouting.js","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerRouting.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncEffectWorkerTransitions.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerTransitions.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAInF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAIpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAKlE,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAIL,KAAK,yBAAyB,EAC/B,MAAM,gCAAgC,CAAC;AAYxC,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAE/B,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"SyncEffectWorkerTransitions.d.ts","sourceRoot":"","sources":["../../../../../src/application/sync/outbound/effects/SyncEffectWorkerTransitions.ts"],"names":[],"mappings":"AAAA,mFAAmF;AAInF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+DAA+D,CAAC;AAIpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAC;AAKlE,OAAO,KAAK,EACV,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAIL,KAAK,yBAAyB,EAC/B,MAAM,gCAAgC,CAAC;AAYxC,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,mBAAmB,EACnB,2BAA2B,EAC3B,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAE/B,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CA+Ef;AAID,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,SAAS,aAAa,EAAE,EAC/B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAwEf;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,aAAa,EAAE,uBAAuB,EACtC,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAoGf;AAsBD,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,EACjC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,EAC7B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,OAAO,CAAC,CAkElB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CAkDf;AAED,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,IAAI,CAAC,CASf"}
|