@rindle/remote 0.7.3-rc.1 → 0.7.3
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.
|
@@ -27,7 +27,7 @@ export interface RemoteOptimisticSourceOptions {
|
|
|
27
27
|
* source records the follower's minted ticket from the `{t:"affinity"}` frame and CLEARS it on a
|
|
28
28
|
* sustained outage so the next (ticketless) reconnect anycasts to a live follower and re-pins
|
|
29
29
|
* (§8). Absent ⇒ affinity off (today's behavior). */
|
|
30
|
-
affinity?: AffinityTicketStore;
|
|
30
|
+
affinity?: AffinityTicketStore | (() => AffinityTicketStore | undefined);
|
|
31
31
|
}
|
|
32
32
|
export declare class RemoteOptimisticSource implements OptimisticSource {
|
|
33
33
|
/** The CURRENT transport (undefined in pure-lazy mode until the first lease opens one). */
|
|
@@ -39,8 +39,9 @@ export declare class RemoteOptimisticSource implements OptimisticSource {
|
|
|
39
39
|
private readonly clientID;
|
|
40
40
|
private readonly resolveSubscribe;
|
|
41
41
|
private readonly pushMutationSender?;
|
|
42
|
-
/**
|
|
43
|
-
|
|
42
|
+
/** Resolve the current affinity ticket store. A thunk lets the one-call client turn affinity on
|
|
43
|
+
* after its first pure-lazy lease returns a placement ticket, before it opens the socket. */
|
|
44
|
+
private readonly affinityStore;
|
|
44
45
|
private handler;
|
|
45
46
|
private progressHandler;
|
|
46
47
|
private restartHandler;
|
|
@@ -61,6 +62,9 @@ export declare class RemoteOptimisticSource implements OptimisticSource {
|
|
|
61
62
|
* in pure-lazy mode before any lease opens a transport (the lmid system query is registered by
|
|
62
63
|
* the backend at construction). Flushed when a transport comes up. */
|
|
63
64
|
private readonly deferred;
|
|
65
|
+
/** One warning per source when an APP lease resolves without a `wsEndpoint` in pure-lazy mode —
|
|
66
|
+
* nothing will ever open the transport, which is otherwise silent (views just stay empty). */
|
|
67
|
+
private warnedEndpointlessLease;
|
|
64
68
|
/** The daemon's boot id (from each `nhello`); a change means it restarted. */
|
|
65
69
|
private lastBootId;
|
|
66
70
|
/** The client's own typed per-table schemas, for hello validation (CRIT#4); set by the backend. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimistic-source.d.ts","sourceRoot":"","sources":["../src/optimistic-source.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EACV,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,OAAO,EACP,WAAW,EACZ,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAMzD,OAAO,EAIL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EAEvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAuBhD;iDACiD;AACjD,MAAM,MAAM,gBAAgB,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,SAAS,CAAC;AAE/D;;;;;;uBAMuB;AACvB,MAAM,MAAM,0BAA0B,GAClC,SAAS,GACT;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,GACxB;IAAE,OAAO,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD,MAAM,WAAW,6BAA6B;IAC5C,wFAAwF;IACxF,gBAAgB,CAAC,EAAE,iBAAiB,CAAC;IACrC,kFAAkF;IAClF,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC;;;0DAGsD;IACtD,QAAQ,CAAC,EAAE,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"optimistic-source.d.ts","sourceRoot":"","sources":["../src/optimistic-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,8 @@ export class RemoteOptimisticSource {
|
|
|
28
28
|
clientID;
|
|
29
29
|
resolveSubscribe;
|
|
30
30
|
pushMutationSender;
|
|
31
|
-
/**
|
|
31
|
+
/** Resolve the current affinity ticket store. A thunk lets the one-call client turn affinity on
|
|
32
|
+
* after its first pure-lazy lease returns a placement ticket, before it opens the socket. */
|
|
32
33
|
affinityStore;
|
|
33
34
|
handler = () => { };
|
|
34
35
|
progressHandler = () => { };
|
|
@@ -50,6 +51,9 @@ export class RemoteOptimisticSource {
|
|
|
50
51
|
* in pure-lazy mode before any lease opens a transport (the lmid system query is registered by
|
|
51
52
|
* the backend at construction). Flushed when a transport comes up. */
|
|
52
53
|
deferred = new Set();
|
|
54
|
+
/** One warning per source when an APP lease resolves without a `wsEndpoint` in pure-lazy mode —
|
|
55
|
+
* nothing will ever open the transport, which is otherwise silent (views just stay empty). */
|
|
56
|
+
warnedEndpointlessLease = false;
|
|
53
57
|
/** The daemon's boot id (from each `nhello`); a change means it restarted. */
|
|
54
58
|
lastBootId;
|
|
55
59
|
/** The client's own typed per-table schemas, for hello validation (CRIT#4); set by the backend. */
|
|
@@ -68,7 +72,8 @@ export class RemoteOptimisticSource {
|
|
|
68
72
|
this.clientID = clientID;
|
|
69
73
|
this.resolveSubscribe = opts.resolveSubscribe ?? defaultSubscribeTarget;
|
|
70
74
|
this.pushMutationSender = opts.pushMutation;
|
|
71
|
-
|
|
75
|
+
const affinity = opts.affinity;
|
|
76
|
+
this.affinityStore = typeof affinity === "function" ? affinity : () => affinity;
|
|
72
77
|
if (isTransport(connection)) {
|
|
73
78
|
this.transportFactory = undefined;
|
|
74
79
|
this.bringUp(connection, undefined);
|
|
@@ -91,7 +96,7 @@ export class RemoteOptimisticSource {
|
|
|
91
96
|
// The held ticket was useful for routing this ws handshake, but HTTP re-leases must wait for
|
|
92
97
|
// THIS connection's first affinity frame. Otherwise an expired/rotated persisted ticket can
|
|
93
98
|
// independently re-pin the control leg before the fresh frame arrives.
|
|
94
|
-
this.affinityStore?.connectionPending();
|
|
99
|
+
this.affinityStore()?.connectionPending();
|
|
95
100
|
this.resync();
|
|
96
101
|
});
|
|
97
102
|
// Sustained outage on this endpoint: re-lease (the router may move us off a dead follower, §3).
|
|
@@ -104,7 +109,7 @@ export class RemoteOptimisticSource {
|
|
|
104
109
|
// `WsTransport` has already evaluated the ticket thunk while constructing this connection.
|
|
105
110
|
// From this point the old/persisted ticket is handshake-only until the follower confirms the
|
|
106
111
|
// selected machine with its first affinity frame.
|
|
107
|
-
this.affinityStore?.connectionPending();
|
|
112
|
+
this.affinityStore()?.connectionPending();
|
|
108
113
|
this.attach(transport);
|
|
109
114
|
transport.send({ t: "init", clientID: this.clientID });
|
|
110
115
|
this.flushDeferred();
|
|
@@ -158,12 +163,13 @@ export class RemoteOptimisticSource {
|
|
|
158
163
|
onDown() {
|
|
159
164
|
if (this.closed)
|
|
160
165
|
return;
|
|
161
|
-
|
|
166
|
+
const affinityStore = this.affinityStore();
|
|
167
|
+
if (affinityStore) {
|
|
162
168
|
// Affinity: the pinned follower is gone (sustained outage). Drop the ticket so the transport's
|
|
163
169
|
// ongoing reconnects go TICKETLESS — the Fly edge then anycasts to a live follower, which mints
|
|
164
170
|
// a fresh ticket, and that reconnect's `onReconnect` → resync re-leases there (FOLLOWER-AFFINITY
|
|
165
171
|
// §8, one bounded reassignment). Nothing to migrate: the ws host is fixed, Fly routes by ticket.
|
|
166
|
-
|
|
172
|
+
affinityStore.clear();
|
|
167
173
|
return;
|
|
168
174
|
}
|
|
169
175
|
if (!this.sawRoutedEndpoint)
|
|
@@ -285,7 +291,16 @@ export class RemoteOptimisticSource {
|
|
|
285
291
|
return;
|
|
286
292
|
}
|
|
287
293
|
// Endpoint-less with no transport (the lmid system query before the first lease): defer until
|
|
288
|
-
// a transport comes up, then re-run this subscribe.
|
|
294
|
+
// a transport comes up, then re-run this subscribe. An APP lease landing here means the
|
|
295
|
+
// server never names an endpoint (e.g. an api-server with an explicit `daemon` and no
|
|
296
|
+
// `rindle.wsUrl`) while the client has no `wsUrl` of its own — the deferral would be
|
|
297
|
+
// permanent and silent, so say it once.
|
|
298
|
+
if ("leaseToken" in target && !this.warnedEndpointlessLease) {
|
|
299
|
+
this.warnedEndpointlessLease = true;
|
|
300
|
+
console.warn("[rindle-remote] a query lease returned no wsEndpoint and no daemon.wsUrl/transport is " +
|
|
301
|
+
"configured — the live subscription cannot open. Configure the API server's " +
|
|
302
|
+
"rindle.wsUrl (or pass daemon.wsUrl to createRindleClient).");
|
|
303
|
+
}
|
|
289
304
|
this.deferred.add(qid);
|
|
290
305
|
};
|
|
291
306
|
const fail = (err) => {
|
|
@@ -315,7 +330,7 @@ export class RemoteOptimisticSource {
|
|
|
315
330
|
// Connection-level: the follower minted/refreshed this connection's placement ticket. Persist
|
|
316
331
|
// it (via the store) so the next connect offers it as a subprotocol and the lease POST forwards
|
|
317
332
|
// it — both legs then pin THIS follower (§4). Off ⇒ no store ⇒ dropped.
|
|
318
|
-
this.affinityStore?.set(msg.ticket);
|
|
333
|
+
this.affinityStore()?.set(msg.ticket);
|
|
319
334
|
return;
|
|
320
335
|
}
|
|
321
336
|
if (msg.t === "progress") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimistic-source.js","sourceRoot":"","sources":["../src/optimistic-source.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"optimistic-source.js","sourceRoot":"","sources":["../src/optimistic-source.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rindle/remote",
|
|
3
|
-
"version": "0.7.3
|
|
3
|
+
"version": "0.7.3",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"README.md"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@rindle/client": "0.7.3
|
|
28
|
+
"@rindle/client": "0.7.3"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@types/node": "^22.10.0",
|
package/src/optimistic-source.ts
CHANGED
|
@@ -88,7 +88,7 @@ export interface RemoteOptimisticSourceOptions {
|
|
|
88
88
|
* source records the follower's minted ticket from the `{t:"affinity"}` frame and CLEARS it on a
|
|
89
89
|
* sustained outage so the next (ticketless) reconnect anycasts to a live follower and re-pins
|
|
90
90
|
* (§8). Absent ⇒ affinity off (today's behavior). */
|
|
91
|
-
affinity?: AffinityTicketStore;
|
|
91
|
+
affinity?: AffinityTicketStore | (() => AffinityTicketStore | undefined);
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
export class RemoteOptimisticSource implements OptimisticSource {
|
|
@@ -101,8 +101,9 @@ export class RemoteOptimisticSource implements OptimisticSource {
|
|
|
101
101
|
private readonly clientID: string;
|
|
102
102
|
private readonly resolveSubscribe: SubscribeResolver;
|
|
103
103
|
private readonly pushMutationSender?: MutationEnvelopeSender;
|
|
104
|
-
/**
|
|
105
|
-
|
|
104
|
+
/** Resolve the current affinity ticket store. A thunk lets the one-call client turn affinity on
|
|
105
|
+
* after its first pure-lazy lease returns a placement ticket, before it opens the socket. */
|
|
106
|
+
private readonly affinityStore: () => AffinityTicketStore | undefined;
|
|
106
107
|
private handler: (qid: QueryId, ev: NormalizedEvent) => void = () => {};
|
|
107
108
|
private progressHandler: (frame: ProgressFrame) => void = () => {};
|
|
108
109
|
private restartHandler: () => void = () => {};
|
|
@@ -123,6 +124,9 @@ export class RemoteOptimisticSource implements OptimisticSource {
|
|
|
123
124
|
* in pure-lazy mode before any lease opens a transport (the lmid system query is registered by
|
|
124
125
|
* the backend at construction). Flushed when a transport comes up. */
|
|
125
126
|
private readonly deferred = new Set<QueryId>();
|
|
127
|
+
/** One warning per source when an APP lease resolves without a `wsEndpoint` in pure-lazy mode —
|
|
128
|
+
* nothing will ever open the transport, which is otherwise silent (views just stay empty). */
|
|
129
|
+
private warnedEndpointlessLease = false;
|
|
126
130
|
/** The daemon's boot id (from each `nhello`); a change means it restarted. */
|
|
127
131
|
private lastBootId: string | undefined;
|
|
128
132
|
/** The client's own typed per-table schemas, for hello validation (CRIT#4); set by the backend. */
|
|
@@ -142,7 +146,8 @@ export class RemoteOptimisticSource implements OptimisticSource {
|
|
|
142
146
|
this.clientID = clientID;
|
|
143
147
|
this.resolveSubscribe = opts.resolveSubscribe ?? defaultSubscribeTarget;
|
|
144
148
|
this.pushMutationSender = opts.pushMutation;
|
|
145
|
-
|
|
149
|
+
const affinity = opts.affinity;
|
|
150
|
+
this.affinityStore = typeof affinity === "function" ? affinity : () => affinity;
|
|
146
151
|
if (isTransport(connection)) {
|
|
147
152
|
this.transportFactory = undefined;
|
|
148
153
|
this.bringUp(connection, undefined);
|
|
@@ -163,7 +168,7 @@ export class RemoteOptimisticSource implements OptimisticSource {
|
|
|
163
168
|
// The held ticket was useful for routing this ws handshake, but HTTP re-leases must wait for
|
|
164
169
|
// THIS connection's first affinity frame. Otherwise an expired/rotated persisted ticket can
|
|
165
170
|
// independently re-pin the control leg before the fresh frame arrives.
|
|
166
|
-
this.affinityStore?.connectionPending();
|
|
171
|
+
this.affinityStore()?.connectionPending();
|
|
167
172
|
this.resync();
|
|
168
173
|
});
|
|
169
174
|
// Sustained outage on this endpoint: re-lease (the router may move us off a dead follower, §3).
|
|
@@ -177,7 +182,7 @@ export class RemoteOptimisticSource implements OptimisticSource {
|
|
|
177
182
|
// `WsTransport` has already evaluated the ticket thunk while constructing this connection.
|
|
178
183
|
// From this point the old/persisted ticket is handshake-only until the follower confirms the
|
|
179
184
|
// selected machine with its first affinity frame.
|
|
180
|
-
this.affinityStore?.connectionPending();
|
|
185
|
+
this.affinityStore()?.connectionPending();
|
|
181
186
|
this.attach(transport);
|
|
182
187
|
transport.send({ t: "init", clientID: this.clientID });
|
|
183
188
|
this.flushDeferred();
|
|
@@ -231,12 +236,13 @@ export class RemoteOptimisticSource implements OptimisticSource {
|
|
|
231
236
|
* behavior and let the transport's own reconnect→resync recover. */
|
|
232
237
|
private onDown(): void {
|
|
233
238
|
if (this.closed) return;
|
|
234
|
-
|
|
239
|
+
const affinityStore = this.affinityStore();
|
|
240
|
+
if (affinityStore) {
|
|
235
241
|
// Affinity: the pinned follower is gone (sustained outage). Drop the ticket so the transport's
|
|
236
242
|
// ongoing reconnects go TICKETLESS — the Fly edge then anycasts to a live follower, which mints
|
|
237
243
|
// a fresh ticket, and that reconnect's `onReconnect` → resync re-leases there (FOLLOWER-AFFINITY
|
|
238
244
|
// §8, one bounded reassignment). Nothing to migrate: the ws host is fixed, Fly routes by ticket.
|
|
239
|
-
|
|
245
|
+
affinityStore.clear();
|
|
240
246
|
return;
|
|
241
247
|
}
|
|
242
248
|
if (!this.sawRoutedEndpoint) return;
|
|
@@ -362,7 +368,18 @@ export class RemoteOptimisticSource implements OptimisticSource {
|
|
|
362
368
|
return;
|
|
363
369
|
}
|
|
364
370
|
// Endpoint-less with no transport (the lmid system query before the first lease): defer until
|
|
365
|
-
// a transport comes up, then re-run this subscribe.
|
|
371
|
+
// a transport comes up, then re-run this subscribe. An APP lease landing here means the
|
|
372
|
+
// server never names an endpoint (e.g. an api-server with an explicit `daemon` and no
|
|
373
|
+
// `rindle.wsUrl`) while the client has no `wsUrl` of its own — the deferral would be
|
|
374
|
+
// permanent and silent, so say it once.
|
|
375
|
+
if ("leaseToken" in target && !this.warnedEndpointlessLease) {
|
|
376
|
+
this.warnedEndpointlessLease = true;
|
|
377
|
+
console.warn(
|
|
378
|
+
"[rindle-remote] a query lease returned no wsEndpoint and no daemon.wsUrl/transport is " +
|
|
379
|
+
"configured — the live subscription cannot open. Configure the API server's " +
|
|
380
|
+
"rindle.wsUrl (or pass daemon.wsUrl to createRindleClient).",
|
|
381
|
+
);
|
|
382
|
+
}
|
|
366
383
|
this.deferred.add(qid);
|
|
367
384
|
};
|
|
368
385
|
const fail = (err: unknown) => {
|
|
@@ -392,7 +409,7 @@ export class RemoteOptimisticSource implements OptimisticSource {
|
|
|
392
409
|
// Connection-level: the follower minted/refreshed this connection's placement ticket. Persist
|
|
393
410
|
// it (via the store) so the next connect offers it as a subprotocol and the lease POST forwards
|
|
394
411
|
// it — both legs then pin THIS follower (§4). Off ⇒ no store ⇒ dropped.
|
|
395
|
-
this.affinityStore?.set(msg.ticket);
|
|
412
|
+
this.affinityStore()?.set(msg.ticket);
|
|
396
413
|
return;
|
|
397
414
|
}
|
|
398
415
|
if (msg.t === "progress") {
|