@opinionated-machine/sse-fallback 0.2.0 → 0.3.0
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 +62 -3
- package/dist/bindingTypes.d.ts +8 -0
- package/dist/bindingTypes.d.ts.map +1 -1
- package/dist/bindingTypes.js +1 -0
- package/dist/bindingTypes.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/subscription.d.ts +98 -1
- package/dist/subscription.d.ts.map +1 -1
- package/dist/subscription.js +230 -7
- package/dist/subscription.js.map +1 -1
- package/dist/transport.d.ts +5 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +5 -2
- package/dist/transport.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -106,6 +106,7 @@ sub.status // 'connecting' | 'live' | 'reconnecting' | 'p
|
|
|
106
106
|
sub.nudge() // force a repair now: a poll, or, when the snapshot
|
|
107
107
|
// is synthesized, a reconnect that skips the backoff
|
|
108
108
|
sub.streamAbandoned // true once a refusal took the stream for good
|
|
109
|
+
sub.onStreamEstablished(() => {}) // a connection carried its first byte
|
|
109
110
|
sub.stop()
|
|
110
111
|
```
|
|
111
112
|
|
|
@@ -135,6 +136,47 @@ try {
|
|
|
135
136
|
| `'budget-exhausted'` | `subscriptionBudget` ran out (`limit`) — show an error and offer a retry |
|
|
136
137
|
| `'manual'` | the caller called `stop()`, or the creation `signal` aborted |
|
|
137
138
|
|
|
139
|
+
### Reporting a broken stream
|
|
140
|
+
|
|
141
|
+
A fallback that works hides the fault that engaged it. Delivery carries on
|
|
142
|
+
over the poll, a few seconds late, and without a report nobody learns that the
|
|
143
|
+
stream behind it has been refused since the last deploy. So a subscription
|
|
144
|
+
that degrades hands an `Error` to `diagnostics.onDegraded`, and hands it again
|
|
145
|
+
every `degradationReportIntervalMs` (10 minutes by default) until the stream
|
|
146
|
+
carries bytes again:
|
|
147
|
+
|
|
148
|
+
```ts
|
|
149
|
+
createResilientSubscription(binding, {
|
|
150
|
+
transport,
|
|
151
|
+
diagnostics: {
|
|
152
|
+
onDegraded: (error) => errorTracker.notify(error),
|
|
153
|
+
onRecovered: ({ kind, degradedForMs }) => metrics.timing('sse.degraded', degradedForMs),
|
|
154
|
+
},
|
|
155
|
+
})
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
The error is a `FallbackDegradedError`, and its message reads on its own in an
|
|
159
|
+
error tracker:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
SSE stream GET /projects/42/events was refused with 404 (it was never live); updates arrive late, on the fallback poll
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
| `kind` | Meaning |
|
|
166
|
+
|---|---|
|
|
167
|
+
| `'stream-refused'` | a status in `unretryableStatuses`; the stream is given up for good, so the report repeats for the life of the subscription |
|
|
168
|
+
| `'stream-rejected'` | any other non-200 status, or a 200 that is not `text/event-stream` (a proxy error page, an SPA fallback route) |
|
|
169
|
+
| `'stream-silent'` | accepted, then closed or timed out without a byte, which is what a buffering proxy looks like |
|
|
170
|
+
| `'stream-unreachable'` | the connect threw or timed out; an offline client produces this too, so it is the one kind worth ranking lower |
|
|
171
|
+
|
|
172
|
+
It also carries `status`, the `request`, `streamWasLive`,
|
|
173
|
+
`pollCarriesDelivery` (false for a synthesized snapshot, where nothing is
|
|
174
|
+
delivered at all), `reportCount` and `degradedForMs`, and the underlying
|
|
175
|
+
failure as `cause`. A non-200 answer on either channel reaches
|
|
176
|
+
`onStreamError` / `onPollError` as a `FallbackHttpError` with `channel`,
|
|
177
|
+
`status` and `request`. `mode: 'poll-only'` never reports: it had no stream to
|
|
178
|
+
lose.
|
|
179
|
+
|
|
138
180
|
### Bounding a pending operation
|
|
139
181
|
|
|
140
182
|
Every individual wait is bounded, but the subscription as a whole is not: a
|
|
@@ -171,6 +213,10 @@ The retry is granted once per failure streak: a second refusal with no
|
|
|
171
213
|
successful request in between stops the subscription with
|
|
172
214
|
`'unretryable-status'`.
|
|
173
215
|
|
|
216
|
+
A refusal the hook recovers is not a failure. The retry runs at once, with no
|
|
217
|
+
backoff, does not count toward `degradedAfterFailures`, and never reaches
|
|
218
|
+
`diagnostics.onDegraded`.
|
|
219
|
+
|
|
174
220
|
### Adopting before the SSE endpoint exists
|
|
175
221
|
|
|
176
222
|
`policy.mode: 'poll-only'` (or the `POLL_ONLY_POLICY` preset) never opens a
|
|
@@ -320,12 +366,17 @@ could reach from one withdrawn mid-session. Repair after a reconnect is the
|
|
|
320
366
|
consumer's job too, since only they know what to re-read:
|
|
321
367
|
|
|
322
368
|
```ts
|
|
323
|
-
sub.
|
|
324
|
-
|
|
325
|
-
if (status === 'stopped') reportToErrorTracker('live segment updates are off')
|
|
369
|
+
sub.onStreamEstablished(() => {
|
|
370
|
+
queryClient.invalidateQueries({ queryKey: ['segments', projectId] })
|
|
326
371
|
})
|
|
372
|
+
sub.onStop((detail) => reportToErrorTracker('live segment updates are off', detail))
|
|
327
373
|
```
|
|
328
374
|
|
|
375
|
+
`onStreamEstablished` fires when a connection carries its first byte, which
|
|
376
|
+
the server's heartbeat makes prompt. `'live'` is the wrong trigger for a
|
|
377
|
+
repair: it arrives on the accepted connect, so an upstream that accepts and
|
|
378
|
+
closes at once would repeat the repair on every retry.
|
|
379
|
+
|
|
329
380
|
A snapshot route that exists but cannot be expressed as events belongs here
|
|
330
381
|
too, and the subscription never dispatches it. An endpoint that answers 204
|
|
331
382
|
when no process is running gives `snapshotToEvents` nothing to return, and a
|
|
@@ -385,6 +436,13 @@ version exceeds the high-watermark. This one rule handles:
|
|
|
385
436
|
`version: 'none'` opts into at-least-once/last-writer-wins semantics as an
|
|
386
437
|
adoption bridge — strongly prefer real versions.
|
|
387
438
|
|
|
439
|
+
Without a version the stale-poll race has no watermark to settle it, so the
|
|
440
|
+
subscription settles it by arrival order instead: a snapshot requested before
|
|
441
|
+
the stream delivered an event is dropped (`onStaleSnapshot`) and requested
|
|
442
|
+
again, since its body may predate the pushed news. After three overtaken
|
|
443
|
+
polls in a row the next one is delivered anyway, so a busy stream cannot
|
|
444
|
+
starve the poll that repairs an outage.
|
|
445
|
+
|
|
388
446
|
## Server-side guarantees (the adopting team's checklist)
|
|
389
447
|
|
|
390
448
|
1. **Required**: a monotonic version per subscription scope, present in both
|
|
@@ -487,6 +545,7 @@ responsibility.
|
|
|
487
545
|
| `streamRefusal` | `'auto'` | follows `snapshotSource`: keep polling on an endpoint snapshot, stop on a synthesized one |
|
|
488
546
|
| `mode` | `'dual'` | `'poll-only'` never opens a stream |
|
|
489
547
|
| `subscriptionBudget` | unset | `{ maxDurationMs, maxPolls }` — a hard give-up bound |
|
|
548
|
+
| `degradationReportIntervalMs` | 600 000 | how often `onDegraded` repeats while degraded; `'off'` reports once |
|
|
490
549
|
|
|
491
550
|
Every wait in the machine is bounded, because an unbounded one turns the
|
|
492
551
|
fallback into no fallback at all: a hung connect or a poll that never settles
|
package/dist/bindingTypes.d.ts
CHANGED
|
@@ -319,6 +319,14 @@ export type FallbackPolicy = {
|
|
|
319
319
|
* @default 'auto'
|
|
320
320
|
*/
|
|
321
321
|
streamRefusal: 'auto' | 'stop' | 'keep-polling';
|
|
322
|
+
/**
|
|
323
|
+
* How often `diagnostics.onDegraded` repeats while the subscription stays
|
|
324
|
+
* degraded. A fallback that keeps delivering is what lets a broken stream
|
|
325
|
+
* become the permanent state unnoticed, so the report does not stop at the
|
|
326
|
+
* first one. `'off'` reports each degradation once.
|
|
327
|
+
* @default 600_000
|
|
328
|
+
*/
|
|
329
|
+
degradationReportIntervalMs: number | 'off';
|
|
322
330
|
};
|
|
323
331
|
export declare const DEFAULT_POLICY: FallbackPolicy;
|
|
324
332
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindingTypes.d.ts","sourceRoot":"","sources":["../src/bindingTypes.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"bindingTypes.d.ts","sourceRoot":"","sources":["../src/bindingTypes.ts"],"names":[],"mappings":"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"}
|
package/dist/bindingTypes.js
CHANGED
package/dist/bindingTypes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindingTypes.js","sourceRoot":"","sources":["../src/bindingTypes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bindingTypes.js","sourceRoot":"","sources":["../src/bindingTypes.ts"],"names":[],"mappings":"AAmWA,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,OAAO;IACpB,cAAc,EAAE,MAAM;IACtB,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;IAClD,wBAAwB,EAAE,MAAM;IAChC,gBAAgB,EAAE,MAAM;IACxB,aAAa,EAAE,MAAM;IACrB,kBAAkB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAC/D,eAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAC5D,qBAAqB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE;IACpD,6BAA6B,EAAE,CAAC;IAChC,qBAAqB,EAAE,CAAC;IACxB,sBAAsB,EAAE,MAAM;IAC9B,qBAAqB,EAAE,MAAM;IAC7B,oBAAoB,EAAE,KAAK;IAC3B,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;IACpC,qBAAqB,EAAE,CAAC,GAAG,CAAC;IAC5B,aAAa,EAAE,MAAM;IACrB,2BAA2B,EAAE,OAAO;CACrC,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAmB,cAAc,CAAA;AAE/D,mEAAmE;AACnE,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,GAAG,cAAc;IACjB,cAAc,EAAE,OAAO;IACvB,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE;IACnD,sBAAsB,EAAE,MAAM;CAC/B,CAAA;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAmB;IAC9C,GAAG,cAAc;IACjB,IAAI,EAAE,WAAW;CAClB,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -4,6 +4,6 @@ export { type BackoffConfig, COMPLETION_POLICY, DEFAULT_POLICY, type EventPayloa
|
|
|
4
4
|
export { createPollGate, type PollGate, type PollGateConfig } from './pollGate.ts';
|
|
5
5
|
export { defaultCompareVersions, type EventOutcome, type IncomingEvent, type InvalidVersionInfo, Reconciler, type SnapshotOutcome, type VersionGap, } from './reconciler.ts';
|
|
6
6
|
export { backoffDelay, ResettableTimer, sleep } from './scheduler.ts';
|
|
7
|
-
export { type CreateResilientSubscriptionOptions, createResilientSubscription, type FallbackDiagnostics, type ResilientSubscription, type StopReason, type SubscriptionStatus, type SubscriptionStopDetail, SubscriptionStoppedError, } from './subscription.ts';
|
|
7
|
+
export { type CreateResilientSubscriptionOptions, createResilientSubscription, type DegradationKind, FallbackDegradedError, type FallbackDiagnostics, FallbackHttpError, type ResilientSubscription, type StopReason, type SubscriptionStatus, type SubscriptionStopDetail, SubscriptionStoppedError, } from './subscription.ts';
|
|
8
8
|
export { type FallbackTransport, isParsedStreamResponse, type ParsedSseFrame, type ParsedStreamResponse, type RawStreamResponse, type SnapshotResponse, type StreamResponse, type TestSnapshotCall, type TestStreamHandle, TestTransport, type TransportRequest, } from './transport.ts';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,KAAK,eAAe,GACrB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,KAAK,4BAA4B,EACjC,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,aAAa,EAClB,iBAAiB,EACjB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAClF,OAAO,EACL,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,EACL,KAAK,kCAAkC,EACvC,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,wBAAwB,GACzB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,aAAa,EACb,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,KAAK,eAAe,GACrB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,KAAK,4BAA4B,EACjC,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EACvB,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EACL,KAAK,aAAa,EAClB,iBAAiB,EACjB,cAAc,EACd,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,OAAO,EACZ,KAAK,aAAa,GACnB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,KAAK,QAAQ,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAClF,OAAO,EACL,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,EACL,KAAK,kCAAkC,EACvC,2BAA2B,EAC3B,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,KAAK,qBAAqB,EAC1B,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,wBAAwB,GACzB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EACL,KAAK,iBAAiB,EACtB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,aAAa,EACb,KAAK,gBAAgB,GACtB,MAAM,gBAAgB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,6 @@ export { COMPLETION_POLICY, DEFAULT_POLICY, LIVE_STATE_POLICY, POLL_ONLY_POLICY,
|
|
|
6
6
|
export { createPollGate } from "./pollGate.js";
|
|
7
7
|
export { defaultCompareVersions, Reconciler, } from "./reconciler.js";
|
|
8
8
|
export { backoffDelay, ResettableTimer, sleep } from "./scheduler.js";
|
|
9
|
-
export { createResilientSubscription, SubscriptionStoppedError, } from "./subscription.js";
|
|
9
|
+
export { createResilientSubscription, FallbackDegradedError, FallbackHttpError, SubscriptionStoppedError, } from "./subscription.js";
|
|
10
10
|
export { isParsedStreamResponse, TestTransport, } from "./transport.js";
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,oDAAoD;AACpD,OAAO,EACL,qBAAqB,EAIrB,cAAc,EACd,gBAAgB,EAChB,cAAc,GAEf,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAEL,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EAGvB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAEL,iBAAiB,EACjB,cAAc,EAUd,iBAAiB,EACjB,gBAAgB,GAKjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAsC,MAAM,eAAe,CAAA;AAClF,OAAO,EACL,sBAAsB,EAItB,UAAU,GAGX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,EAEL,2BAA2B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,oDAAoD;AACpD,OAAO,EACL,qBAAqB,EAIrB,cAAc,EACd,gBAAgB,EAChB,cAAc,GAEf,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAEL,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,EAGvB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,cAAc,CAAA;AACrB,OAAO,EAEL,iBAAiB,EACjB,cAAc,EAUd,iBAAiB,EACjB,gBAAgB,GAKjB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAsC,MAAM,eAAe,CAAA;AAClF,OAAO,EACL,sBAAsB,EAItB,UAAU,GAGX,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,EAEL,2BAA2B,EAE3B,qBAAqB,EAErB,iBAAiB,EAKjB,wBAAwB,GACzB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAEL,sBAAsB,EAQtB,aAAa,GAEd,MAAM,gBAAgB,CAAA"}
|
package/dist/subscription.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { FallbackBinding, FallbackRequestParams } from './binding.ts';
|
|
|
2
2
|
import type { EventPayloadMap, FallbackEvent, FallbackPolicy } from './bindingTypes.ts';
|
|
3
3
|
import type { PollGate } from './pollGate.ts';
|
|
4
4
|
import type { InvalidVersionInfo, VersionGap } from './reconciler.ts';
|
|
5
|
-
import type { FallbackTransport } from './transport.ts';
|
|
5
|
+
import type { FallbackTransport, TransportRequest } from './transport.ts';
|
|
6
6
|
export type SubscriptionStatus = 'connecting' | 'live' | 'reconnecting' | 'polling' | 'stopped';
|
|
7
7
|
/**
|
|
8
8
|
* Why a subscription reached `'stopped'`.
|
|
@@ -56,6 +56,69 @@ export declare class SubscriptionStoppedError extends Error {
|
|
|
56
56
|
readonly streamWasLive: boolean | undefined;
|
|
57
57
|
constructor(detail: SubscriptionStopDetail);
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* A request answered with a status the channel cannot use. Handed to
|
|
61
|
+
* `onStreamError` / `onPollError`, and as the `cause` of a
|
|
62
|
+
* {@link FallbackDegradedError}.
|
|
63
|
+
*/
|
|
64
|
+
export declare class FallbackHttpError extends Error {
|
|
65
|
+
readonly channel: 'poll' | 'stream';
|
|
66
|
+
readonly status: number;
|
|
67
|
+
readonly request: TransportRequest;
|
|
68
|
+
constructor(message: string, detail: {
|
|
69
|
+
channel: 'poll' | 'stream';
|
|
70
|
+
status: number;
|
|
71
|
+
request: TransportRequest;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* What broke the stream, as far as a client can tell.
|
|
76
|
+
*
|
|
77
|
+
* - `'stream-refused'`: a status in `unretryableStatuses`; the stream is given up for good.
|
|
78
|
+
* A refusal that `onAuthChallenge` recovers is not a failure and has no kind.
|
|
79
|
+
* - `'stream-rejected'`: any other non-200 status, or a 200 that is not `text/event-stream`
|
|
80
|
+
* (a proxy error page, an SPA fallback route).
|
|
81
|
+
* - `'stream-silent'`: accepted, then closed or timed out without a single byte. A proxy that
|
|
82
|
+
* buffers the response is the usual cause.
|
|
83
|
+
* - `'stream-unreachable'`: the connect threw or timed out. An offline client produces this too,
|
|
84
|
+
* which is the one kind a reporter may want to rank lower.
|
|
85
|
+
*/
|
|
86
|
+
export type DegradationKind = 'stream-refused' | 'stream-rejected' | 'stream-silent' | 'stream-unreachable';
|
|
87
|
+
/**
|
|
88
|
+
* The stream stopped working for a reason the client can name, and the subscription is running
|
|
89
|
+
* without it: on its poll for an endpoint snapshot, or on nothing at all for a synthesized one.
|
|
90
|
+
*
|
|
91
|
+
* Delivered to `diagnostics.onDegraded` when the subscription degrades, and again every
|
|
92
|
+
* `degradationReportIntervalMs` for as long as it stays degraded, so a tab that lives on the
|
|
93
|
+
* fallback keeps showing up in an error tracker instead of reporting once and going quiet.
|
|
94
|
+
* Hand it to one as it is: the message names the route, the status and the channel left.
|
|
95
|
+
*/
|
|
96
|
+
export declare class FallbackDegradedError extends Error {
|
|
97
|
+
readonly kind: DegradationKind;
|
|
98
|
+
/** The refusing or rejecting status, for `'stream-refused'` and `'stream-rejected'`. */
|
|
99
|
+
readonly status: number | undefined;
|
|
100
|
+
/** The stream request that failed. */
|
|
101
|
+
readonly request: TransportRequest;
|
|
102
|
+
/** Whether any stream of this subscription had carried bytes before it broke. */
|
|
103
|
+
readonly streamWasLive: boolean;
|
|
104
|
+
/** Whether a poll keeps delivering while the stream is down. */
|
|
105
|
+
readonly pollCarriesDelivery: boolean;
|
|
106
|
+
/** How many times this degradation has been reported, starting at 1. */
|
|
107
|
+
readonly reportCount: number;
|
|
108
|
+
/** Time since the subscription degraded, 0 on the first report. */
|
|
109
|
+
readonly degradedForMs: number;
|
|
110
|
+
constructor(detail: {
|
|
111
|
+
kind: DegradationKind;
|
|
112
|
+
status?: number;
|
|
113
|
+
contentType?: string;
|
|
114
|
+
request: TransportRequest;
|
|
115
|
+
streamWasLive: boolean;
|
|
116
|
+
pollCarriesDelivery: boolean;
|
|
117
|
+
reportCount: number;
|
|
118
|
+
degradedForMs: number;
|
|
119
|
+
cause?: unknown;
|
|
120
|
+
});
|
|
121
|
+
}
|
|
59
122
|
/**
|
|
60
123
|
* Observability hooks — all optional, all no-ops by default. None of these
|
|
61
124
|
* affect delivery semantics; they exist so applications can meter the
|
|
@@ -64,9 +127,30 @@ export declare class SubscriptionStoppedError extends Error {
|
|
|
64
127
|
export type FallbackDiagnostics = {
|
|
65
128
|
onGap?: (gap: VersionGap) => void;
|
|
66
129
|
onDuplicate?: (event: string) => void;
|
|
130
|
+
/**
|
|
131
|
+
* A snapshot was dropped because the stream had already delivered newer
|
|
132
|
+
* news: below the watermark, or, for `version: 'none'`, requested before a
|
|
133
|
+
* pushed event it would have overwritten.
|
|
134
|
+
*/
|
|
67
135
|
onStaleSnapshot?: () => void;
|
|
68
136
|
onPollError?: (error: unknown) => void;
|
|
69
137
|
onStreamError?: (error: unknown) => void;
|
|
138
|
+
/**
|
|
139
|
+
* The stream broke for a reason a client can name and the subscription is
|
|
140
|
+
* running without it. Fires on degrading, and again on the
|
|
141
|
+
* `degradationReportIntervalMs` cadence until it recovers.
|
|
142
|
+
*
|
|
143
|
+
* This is the hook to send to an error tracker. A fallback that works is
|
|
144
|
+
* exactly what hides a broken main path: delivery carries on, late, and
|
|
145
|
+
* nothing else says why. Not fired for `mode: 'poll-only'`, which never
|
|
146
|
+
* had a stream to lose.
|
|
147
|
+
*/
|
|
148
|
+
onDegraded?: (error: FallbackDegradedError) => void;
|
|
149
|
+
/** A degradation reported through `onDegraded` ended: the stream carried bytes again. */
|
|
150
|
+
onRecovered?: (recovery: {
|
|
151
|
+
kind: DegradationKind;
|
|
152
|
+
degradedForMs: number;
|
|
153
|
+
}) => void;
|
|
70
154
|
/**
|
|
71
155
|
* The stream was refused with a status it cannot retry past, and the
|
|
72
156
|
* subscription carried on polling instead of stopping: `streamRefusal:
|
|
@@ -123,6 +207,9 @@ export type CreateResilientSubscriptionOptions = {
|
|
|
123
207
|
* throw, to stop the subscription with `'unretryable-status'`. The retry is
|
|
124
208
|
* granted once per auth failure streak: a second refusal with no successful
|
|
125
209
|
* request in between stops the subscription.
|
|
210
|
+
*
|
|
211
|
+
* A refusal the hook recovers is not a stream failure: the retry runs at
|
|
212
|
+
* once, with no backoff, and does not count toward `degradedAfterFailures`.
|
|
126
213
|
*/
|
|
127
214
|
onAuthChallenge?: (challenge: {
|
|
128
215
|
status: number;
|
|
@@ -163,6 +250,16 @@ export type ResilientSubscription<Events extends EventPayloadMap = EventPayloadM
|
|
|
163
250
|
* `'stopped'`, and says why — see {@link StopReason}.
|
|
164
251
|
*/
|
|
165
252
|
onStatusChange(listener: (status: SubscriptionStatus, detail?: SubscriptionStopDetail) => void): () => void;
|
|
253
|
+
/**
|
|
254
|
+
* Run a listener each time a stream connection carries its first byte.
|
|
255
|
+
*
|
|
256
|
+
* With a synthesized snapshot an accepted connect reports `'live'` before
|
|
257
|
+
* any byte, since quiet is normal there. That makes `'live'` the wrong
|
|
258
|
+
* trigger for work that must not repeat on every retry: an upstream that
|
|
259
|
+
* accepts and closes at once cycles `'reconnecting'` and `'live'` on each
|
|
260
|
+
* attempt. This fires only for a connection that delivered something.
|
|
261
|
+
*/
|
|
262
|
+
onStreamEstablished(listener: () => void): () => void;
|
|
166
263
|
/**
|
|
167
264
|
* Why the subscription stopped, or `undefined` while it is still running.
|
|
168
265
|
* Also delivered to `onStop` and `onStatusChange` at the moment it stops.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAE1E,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAEvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGrE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
|
package/dist/subscription.js
CHANGED
|
@@ -25,6 +25,80 @@ export class SubscriptionStoppedError extends Error {
|
|
|
25
25
|
this.streamWasLive = detail.streamWasLive;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* A request answered with a status the channel cannot use. Handed to
|
|
30
|
+
* `onStreamError` / `onPollError`, and as the `cause` of a
|
|
31
|
+
* {@link FallbackDegradedError}.
|
|
32
|
+
*/
|
|
33
|
+
export class FallbackHttpError extends Error {
|
|
34
|
+
channel;
|
|
35
|
+
status;
|
|
36
|
+
request;
|
|
37
|
+
constructor(message, detail) {
|
|
38
|
+
super(message);
|
|
39
|
+
this.name = 'FallbackHttpError';
|
|
40
|
+
this.channel = detail.channel;
|
|
41
|
+
this.status = detail.status;
|
|
42
|
+
this.request = detail.request;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The stream stopped working for a reason the client can name, and the subscription is running
|
|
47
|
+
* without it: on its poll for an endpoint snapshot, or on nothing at all for a synthesized one.
|
|
48
|
+
*
|
|
49
|
+
* Delivered to `diagnostics.onDegraded` when the subscription degrades, and again every
|
|
50
|
+
* `degradationReportIntervalMs` for as long as it stays degraded, so a tab that lives on the
|
|
51
|
+
* fallback keeps showing up in an error tracker instead of reporting once and going quiet.
|
|
52
|
+
* Hand it to one as it is: the message names the route, the status and the channel left.
|
|
53
|
+
*/
|
|
54
|
+
export class FallbackDegradedError extends Error {
|
|
55
|
+
kind;
|
|
56
|
+
/** The refusing or rejecting status, for `'stream-refused'` and `'stream-rejected'`. */
|
|
57
|
+
status;
|
|
58
|
+
/** The stream request that failed. */
|
|
59
|
+
request;
|
|
60
|
+
/** Whether any stream of this subscription had carried bytes before it broke. */
|
|
61
|
+
streamWasLive;
|
|
62
|
+
/** Whether a poll keeps delivering while the stream is down. */
|
|
63
|
+
pollCarriesDelivery;
|
|
64
|
+
/** How many times this degradation has been reported, starting at 1. */
|
|
65
|
+
reportCount;
|
|
66
|
+
/** Time since the subscription degraded, 0 on the first report. */
|
|
67
|
+
degradedForMs;
|
|
68
|
+
constructor(detail) {
|
|
69
|
+
super(describeDegradation(detail), { cause: detail.cause });
|
|
70
|
+
this.name = 'FallbackDegradedError';
|
|
71
|
+
this.kind = detail.kind;
|
|
72
|
+
this.status = detail.status;
|
|
73
|
+
this.request = detail.request;
|
|
74
|
+
this.streamWasLive = detail.streamWasLive;
|
|
75
|
+
this.pollCarriesDelivery = detail.pollCarriesDelivery;
|
|
76
|
+
this.reportCount = detail.reportCount;
|
|
77
|
+
this.degradedForMs = detail.degradedForMs;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function describeDegradation(detail) {
|
|
81
|
+
const route = `${detail.request.method.toUpperCase()} ${detail.request.path}`;
|
|
82
|
+
const history = detail.streamWasLive ? 'it had been live' : 'it was never live';
|
|
83
|
+
const fault = {
|
|
84
|
+
'stream-refused': `was refused with ${detail.status}`,
|
|
85
|
+
'stream-rejected': detail.status === 200
|
|
86
|
+
? `answered 200 with content-type ${detail.contentType || '(none)'}`
|
|
87
|
+
: `was rejected with ${detail.status}`,
|
|
88
|
+
'stream-silent': 'was accepted but closed without carrying any bytes',
|
|
89
|
+
'stream-unreachable': 'could not be reached',
|
|
90
|
+
}[detail.kind];
|
|
91
|
+
const fallback = detail.pollCarriesDelivery
|
|
92
|
+
? 'updates arrive late, on the fallback poll'
|
|
93
|
+
: 'no poll covers this binding, so nothing is delivered until it recovers';
|
|
94
|
+
return `SSE stream ${route} ${fault} (${history}); ${fallback}`;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Consecutive versionless polls dropped for racing a pushed event, after
|
|
98
|
+
* which the next one is delivered anyway: a busy stream must not starve the
|
|
99
|
+
* poll that repairs an outage.
|
|
100
|
+
*/
|
|
101
|
+
const MAX_SUPERSEDED_POLLS = 3;
|
|
28
102
|
class ResilientSubscriptionImpl {
|
|
29
103
|
binding;
|
|
30
104
|
transport;
|
|
@@ -67,6 +141,11 @@ class ResilientSubscriptionImpl {
|
|
|
67
141
|
streamEverProducedBytes = false;
|
|
68
142
|
/** Whether the stream has been given up for good, see `abandonStream`. */
|
|
69
143
|
streamAbandonedValue = false;
|
|
144
|
+
/** The degradation last reported through `onDegraded`, until the stream recovers. */
|
|
145
|
+
reportedDegradation;
|
|
146
|
+
/** Events the stream delivered, so a versionless poll can tell it was overtaken. */
|
|
147
|
+
streamDeliveries = 0;
|
|
148
|
+
supersededPolls = 0;
|
|
70
149
|
pollInFlight = false;
|
|
71
150
|
pollQueued = false;
|
|
72
151
|
pollFailures = 0;
|
|
@@ -82,10 +161,12 @@ class ResilientSubscriptionImpl {
|
|
|
82
161
|
deadman = new ResettableTimer(() => this.schedulePoll());
|
|
83
162
|
staleConnection = new ResettableTimer(() => this.onStaleConnection());
|
|
84
163
|
budgetTimer = new ResettableTimer(() => this.stopWith({ reason: 'budget-exhausted', limit: 'maxDurationMs' }));
|
|
164
|
+
degradationReminder = new ResettableTimer(() => this.emitDegradation());
|
|
85
165
|
eventListeners = new Set();
|
|
86
166
|
stateListeners = new Set();
|
|
87
167
|
statusListeners = new Set();
|
|
88
168
|
stopListeners = new Set();
|
|
169
|
+
establishedListeners = new Set();
|
|
89
170
|
iteratorFeeds = new Set();
|
|
90
171
|
constructor(binding, options) {
|
|
91
172
|
this.binding = binding;
|
|
@@ -167,6 +248,10 @@ class ResilientSubscriptionImpl {
|
|
|
167
248
|
this.statusListeners.add(listener);
|
|
168
249
|
return () => this.statusListeners.delete(listener);
|
|
169
250
|
}
|
|
251
|
+
onStreamEstablished(listener) {
|
|
252
|
+
this.establishedListeners.add(listener);
|
|
253
|
+
return () => this.establishedListeners.delete(listener);
|
|
254
|
+
}
|
|
170
255
|
onStop(listener) {
|
|
171
256
|
if (this.stopDetail !== undefined) {
|
|
172
257
|
this.runListener(listener, this.stopDetail);
|
|
@@ -250,6 +335,7 @@ class ResilientSubscriptionImpl {
|
|
|
250
335
|
this.deadman.clear();
|
|
251
336
|
this.staleConnection.clear();
|
|
252
337
|
this.budgetTimer.clear();
|
|
338
|
+
this.degradationReminder.clear();
|
|
253
339
|
this.currentStreamAbort?.abort();
|
|
254
340
|
this.abortController.abort();
|
|
255
341
|
this.setStatus('stopped', detail);
|
|
@@ -259,6 +345,7 @@ class ResilientSubscriptionImpl {
|
|
|
259
345
|
for (const feed of this.iteratorFeeds)
|
|
260
346
|
feed.finish();
|
|
261
347
|
this.iteratorFeeds.clear();
|
|
348
|
+
this.establishedListeners.clear();
|
|
262
349
|
}
|
|
263
350
|
// --------------------------------------------------------------------
|
|
264
351
|
// Stream loop
|
|
@@ -272,7 +359,10 @@ class ResilientSubscriptionImpl {
|
|
|
272
359
|
const onMasterAbort = () => streamAbort.abort();
|
|
273
360
|
this.abortController.signal.addEventListener('abort', onMasterAbort, { once: true });
|
|
274
361
|
let connectFailed = false;
|
|
362
|
+
let failure;
|
|
363
|
+
let credentialsRefreshed = false;
|
|
275
364
|
this.streamProducedBytes = false;
|
|
365
|
+
const request = this.binding.buildStreamRequest(this.params);
|
|
276
366
|
// A connect that never produces headers must not park the subscription:
|
|
277
367
|
// bound it here so it fails like any other connect failure (backoff,
|
|
278
368
|
// degradation, fallback polling) instead of hanging forever.
|
|
@@ -281,7 +371,10 @@ class ResilientSubscriptionImpl {
|
|
|
281
371
|
connectTimeout.arm(this.policy.connectTimeoutMs);
|
|
282
372
|
}
|
|
283
373
|
try {
|
|
284
|
-
const response = await this.transport.openStream(
|
|
374
|
+
const response = await this.transport.openStream(request, {
|
|
375
|
+
signal: streamAbort.signal,
|
|
376
|
+
lastEventId: this.lastEventId,
|
|
377
|
+
});
|
|
285
378
|
connectTimeout.clear();
|
|
286
379
|
if (this.stopped)
|
|
287
380
|
return;
|
|
@@ -293,7 +386,17 @@ class ResilientSubscriptionImpl {
|
|
|
293
386
|
// chunks of a refused connect are never consumed, and without this
|
|
294
387
|
// every retry would leak a socket.
|
|
295
388
|
streamAbort.abort();
|
|
296
|
-
|
|
389
|
+
const error = new FallbackHttpError(response.status === 200
|
|
390
|
+
? `SSE connect answered 200 with content-type ${contentType}`
|
|
391
|
+
: `SSE connect failed with status ${response.status}`, { channel: 'stream', status: response.status, request });
|
|
392
|
+
failure = {
|
|
393
|
+
kind: 'stream-rejected',
|
|
394
|
+
status: response.status,
|
|
395
|
+
contentType,
|
|
396
|
+
request,
|
|
397
|
+
cause: error,
|
|
398
|
+
};
|
|
399
|
+
this.diagnostics.onStreamError?.(error);
|
|
297
400
|
if (this.policy.unretryableStatuses.includes(response.status)) {
|
|
298
401
|
// An expired token is the common case behind a 401 in a SPA, and
|
|
299
402
|
// recovering without a page reload is the point of this package.
|
|
@@ -304,7 +407,12 @@ class ResilientSubscriptionImpl {
|
|
|
304
407
|
return;
|
|
305
408
|
if (!recovered) {
|
|
306
409
|
if (this.streamRefusal === 'keep-polling') {
|
|
307
|
-
this.abandonStream(
|
|
410
|
+
this.abandonStream({
|
|
411
|
+
kind: 'stream-refused',
|
|
412
|
+
status: response.status,
|
|
413
|
+
request,
|
|
414
|
+
cause: error,
|
|
415
|
+
});
|
|
308
416
|
return;
|
|
309
417
|
}
|
|
310
418
|
this.stopWith({
|
|
@@ -315,6 +423,9 @@ class ResilientSubscriptionImpl {
|
|
|
315
423
|
});
|
|
316
424
|
return;
|
|
317
425
|
}
|
|
426
|
+
// A refreshed token says nothing about the stream's health, so
|
|
427
|
+
// the retry skips the failure count and the backoff, as a poll does.
|
|
428
|
+
credentialsRefreshed = true;
|
|
318
429
|
}
|
|
319
430
|
}
|
|
320
431
|
else {
|
|
@@ -364,6 +475,11 @@ class ResilientSubscriptionImpl {
|
|
|
364
475
|
if (this.stopped)
|
|
365
476
|
return;
|
|
366
477
|
connectFailed = !this.streamConnected;
|
|
478
|
+
failure = {
|
|
479
|
+
kind: connectFailed ? 'stream-unreachable' : 'stream-silent',
|
|
480
|
+
request,
|
|
481
|
+
cause: error,
|
|
482
|
+
};
|
|
367
483
|
this.diagnostics.onStreamError?.(error);
|
|
368
484
|
}
|
|
369
485
|
finally {
|
|
@@ -374,6 +490,8 @@ class ResilientSubscriptionImpl {
|
|
|
374
490
|
}
|
|
375
491
|
if (this.stopped || this.streamAbandoned || this.reconciler.isTerminated)
|
|
376
492
|
return;
|
|
493
|
+
if (credentialsRefreshed)
|
|
494
|
+
continue;
|
|
377
495
|
// Armed before any status is published below, so a listener that
|
|
378
496
|
// nudges on 'reconnecting' cuts this backoff short.
|
|
379
497
|
const backoffWake = new AbortController();
|
|
@@ -382,13 +500,20 @@ class ResilientSubscriptionImpl {
|
|
|
382
500
|
// bytes. A stream that is accepted and then closes immediately would
|
|
383
501
|
// otherwise reset the backoff on every attempt and never degrade,
|
|
384
502
|
// turning a broken upstream into a reconnect-and-poll storm.
|
|
503
|
+
let countedFailure;
|
|
385
504
|
if (connectFailed || !this.streamProducedBytes) {
|
|
386
505
|
this.consecutiveConnectFailures += 1;
|
|
506
|
+
countedFailure = failure ?? { kind: 'stream-silent', request };
|
|
507
|
+
// Reminders name the cause as it stands now, not the one that degraded it.
|
|
508
|
+
if (this.reportedDegradation)
|
|
509
|
+
this.reportedDegradation.failure = countedFailure;
|
|
387
510
|
}
|
|
388
511
|
if (!this.degraded && this.consecutiveConnectFailures >= this.policy.degradedAfterFailures) {
|
|
389
512
|
// The poll this drop needs is scheduled below; the deadman carries
|
|
390
513
|
// the degraded cadence from its next arm.
|
|
391
514
|
this.degrade({ forcePoll: false });
|
|
515
|
+
if (countedFailure)
|
|
516
|
+
this.reportDegradation(countedFailure);
|
|
392
517
|
}
|
|
393
518
|
else {
|
|
394
519
|
// Already degraded, a drop keeps an endpoint binding on 'polling'. A
|
|
@@ -442,7 +567,8 @@ class ResilientSubscriptionImpl {
|
|
|
442
567
|
* `initialPoll: 'eager'` the hydration poll is scheduled by an accepted
|
|
443
568
|
* connect, so a first connect that is refused leaves nothing armed.
|
|
444
569
|
*/
|
|
445
|
-
abandonStream(
|
|
570
|
+
abandonStream(refusal) {
|
|
571
|
+
const { status } = refusal;
|
|
446
572
|
this.streamAbandonedValue = true;
|
|
447
573
|
// A retry the STREAM spent on a refresh that worked, only to be refused
|
|
448
574
|
// anyway, went to a channel that no longer exists. The poll now carries
|
|
@@ -460,6 +586,59 @@ class ResilientSubscriptionImpl {
|
|
|
460
586
|
if (this.stopped || this.reconciler.isTerminated)
|
|
461
587
|
return;
|
|
462
588
|
this.degrade({ forcePoll: true });
|
|
589
|
+
this.reportDegradation(refusal);
|
|
590
|
+
}
|
|
591
|
+
/**
|
|
592
|
+
* Report that the stream broke and the subscription runs without it, then
|
|
593
|
+
* keep reporting on `degradationReportIntervalMs` until it recovers.
|
|
594
|
+
*
|
|
595
|
+
* One report per degradation would not be enough: a tab that degraded an
|
|
596
|
+
* hour ago looks, in an error tracker, like a fault that went away. A new
|
|
597
|
+
* cause (a refusal after a run of silent connects) is reported at once.
|
|
598
|
+
*/
|
|
599
|
+
reportDegradation(failure) {
|
|
600
|
+
if (this.stopped || this.reconciler.isTerminated)
|
|
601
|
+
return;
|
|
602
|
+
const current = this.reportedDegradation;
|
|
603
|
+
this.reportedDegradation = {
|
|
604
|
+
failure,
|
|
605
|
+
streamWasLive: this.streamEverProducedBytes,
|
|
606
|
+
since: current?.since ?? Date.now(),
|
|
607
|
+
reports: current?.reports ?? 0,
|
|
608
|
+
};
|
|
609
|
+
this.emitDegradation();
|
|
610
|
+
}
|
|
611
|
+
emitDegradation() {
|
|
612
|
+
const degradation = this.reportedDegradation;
|
|
613
|
+
if (!degradation || this.stopped || this.reconciler.isTerminated)
|
|
614
|
+
return;
|
|
615
|
+
degradation.reports += 1;
|
|
616
|
+
const { failure } = degradation;
|
|
617
|
+
const error = new FallbackDegradedError({
|
|
618
|
+
...failure,
|
|
619
|
+
streamWasLive: degradation.streamWasLive,
|
|
620
|
+
pollCarriesDelivery: this.pollCanDeliver,
|
|
621
|
+
reportCount: degradation.reports,
|
|
622
|
+
degradedForMs: Date.now() - degradation.since,
|
|
623
|
+
});
|
|
624
|
+
this.runListener(() => this.diagnostics.onDegraded?.(error), undefined);
|
|
625
|
+
if (this.stopped)
|
|
626
|
+
return;
|
|
627
|
+
const interval = this.policy.degradationReportIntervalMs;
|
|
628
|
+
if (interval !== 'off')
|
|
629
|
+
this.degradationReminder.arm(interval);
|
|
630
|
+
}
|
|
631
|
+
endDegradation() {
|
|
632
|
+
const degradation = this.reportedDegradation;
|
|
633
|
+
if (!degradation)
|
|
634
|
+
return;
|
|
635
|
+
this.reportedDegradation = undefined;
|
|
636
|
+
this.degradationReminder.clear();
|
|
637
|
+
const recovery = {
|
|
638
|
+
kind: degradation.failure.kind,
|
|
639
|
+
degradedForMs: Date.now() - degradation.since,
|
|
640
|
+
};
|
|
641
|
+
this.runListener(() => this.diagnostics.onRecovered?.(recovery), undefined);
|
|
463
642
|
}
|
|
464
643
|
consumeStream(response) {
|
|
465
644
|
this.streamConnected = true;
|
|
@@ -532,6 +711,10 @@ class ResilientSubscriptionImpl {
|
|
|
532
711
|
this.consecutiveConnectFailures = 0;
|
|
533
712
|
this.authCredit = 'available';
|
|
534
713
|
this.degraded = false;
|
|
714
|
+
this.endDegradation();
|
|
715
|
+
// `onRecovered` may have stopped the subscription, which must stay 'stopped'.
|
|
716
|
+
if (this.stopped)
|
|
717
|
+
return;
|
|
535
718
|
// Bytes on the wire are the only evidence that delivery works, so they are
|
|
536
719
|
// what promotes the subscription to 'live' — from degraded polling, and
|
|
537
720
|
// equally from the 'connecting' a byte-less stream is parked in after
|
|
@@ -541,6 +724,11 @@ class ResilientSubscriptionImpl {
|
|
|
541
724
|
if (!this.reconciler.isHydrating) {
|
|
542
725
|
this.setStatus('live');
|
|
543
726
|
}
|
|
727
|
+
for (const listener of this.establishedListeners) {
|
|
728
|
+
if (this.stopped)
|
|
729
|
+
return;
|
|
730
|
+
this.runListener(listener, undefined);
|
|
731
|
+
}
|
|
544
732
|
}
|
|
545
733
|
/**
|
|
546
734
|
* Move the reconnect cursor to where this frame leaves it.
|
|
@@ -599,8 +787,10 @@ class ResilientSubscriptionImpl {
|
|
|
599
787
|
// every 15s polled between nearly every pair of events, forever, while a
|
|
600
788
|
// fully idle one backed off to `deadmanIdleBackoff.maxMs`. A poll that
|
|
601
789
|
// does find news still resets it, in `executePoll`.
|
|
602
|
-
if (outcome.deliveries.length > 0)
|
|
790
|
+
if (outcome.deliveries.length > 0) {
|
|
791
|
+
this.streamDeliveries += 1;
|
|
603
792
|
this.armDeadman();
|
|
793
|
+
}
|
|
604
794
|
if (outcome.duplicate) {
|
|
605
795
|
this.diagnostics.onDuplicate?.(parsed.event ?? 'message');
|
|
606
796
|
}
|
|
@@ -726,11 +916,17 @@ class ResilientSubscriptionImpl {
|
|
|
726
916
|
if (this.stopped || this.reconciler.isTerminated)
|
|
727
917
|
return;
|
|
728
918
|
}
|
|
729
|
-
const
|
|
919
|
+
const request = this.binding.buildSnapshotRequest(this.params);
|
|
920
|
+
const streamDeliveriesAtRequest = this.streamDeliveries;
|
|
921
|
+
const response = await this.transport.fetchSnapshot(request, { signal: pollAbort.signal });
|
|
730
922
|
if (this.stopped || this.reconciler.isTerminated)
|
|
731
923
|
return;
|
|
732
924
|
if (response.status < 200 || response.status >= 300) {
|
|
733
|
-
this.diagnostics.onPollError?.(new
|
|
925
|
+
this.diagnostics.onPollError?.(new FallbackHttpError(`Snapshot poll failed with status ${response.status}`, {
|
|
926
|
+
channel: 'poll',
|
|
927
|
+
status: response.status,
|
|
928
|
+
request,
|
|
929
|
+
}));
|
|
734
930
|
if (this.policy.unretryableStatuses.includes(response.status)) {
|
|
735
931
|
const recovered = await this.tryAuthChallenge(response.status, 'poll');
|
|
736
932
|
if (this.stopped || this.reconciler.isTerminated)
|
|
@@ -753,6 +949,13 @@ class ResilientSubscriptionImpl {
|
|
|
753
949
|
}
|
|
754
950
|
this.pollFailures = 0;
|
|
755
951
|
this.authCredit = 'available';
|
|
952
|
+
if (this.isSupersededByStream(streamDeliveriesAtRequest)) {
|
|
953
|
+
// Asked again rather than dropped: this may be the poll repairing an
|
|
954
|
+
// outage, and a fresh one reads a state at least as new as the event.
|
|
955
|
+
this.diagnostics.onStaleSnapshot?.();
|
|
956
|
+
this.pollQueued = true;
|
|
957
|
+
return;
|
|
958
|
+
}
|
|
756
959
|
const outcome = this.reconciler.handleSnapshot(response.body);
|
|
757
960
|
if (outcome.stale) {
|
|
758
961
|
this.diagnostics.onStaleSnapshot?.();
|
|
@@ -803,6 +1006,25 @@ class ResilientSubscriptionImpl {
|
|
|
803
1006
|
}
|
|
804
1007
|
}
|
|
805
1008
|
}
|
|
1009
|
+
/**
|
|
1010
|
+
* Whether a versionless snapshot was overtaken by the stream while it was
|
|
1011
|
+
* in flight. Its body may predate the pushed event, and with no version to
|
|
1012
|
+
* compare, delivering it would overwrite newer news with older.
|
|
1013
|
+
*/
|
|
1014
|
+
isSupersededByStream(streamDeliveriesAtRequest) {
|
|
1015
|
+
if (this.binding.config.version !== 'none')
|
|
1016
|
+
return false;
|
|
1017
|
+
if (this.streamDeliveries === streamDeliveriesAtRequest) {
|
|
1018
|
+
this.supersededPolls = 0;
|
|
1019
|
+
return false;
|
|
1020
|
+
}
|
|
1021
|
+
if (this.supersededPolls >= MAX_SUPERSEDED_POLLS) {
|
|
1022
|
+
this.supersededPolls = 0;
|
|
1023
|
+
return false;
|
|
1024
|
+
}
|
|
1025
|
+
this.supersededPolls += 1;
|
|
1026
|
+
return true;
|
|
1027
|
+
}
|
|
806
1028
|
/**
|
|
807
1029
|
* Offer an auth refusal to the application once, so an expired token can be
|
|
808
1030
|
* refreshed instead of killing the subscription.
|
|
@@ -1021,6 +1243,7 @@ export function createResilientSubscription(binding, options) {
|
|
|
1021
1243
|
return impl.streamAbandoned;
|
|
1022
1244
|
},
|
|
1023
1245
|
onStatusChange: (listener) => impl.onStatusChange(listener),
|
|
1246
|
+
onStreamEstablished: (listener) => impl.onStreamEstablished(listener),
|
|
1024
1247
|
get result() {
|
|
1025
1248
|
return impl.result;
|
|
1026
1249
|
},
|
package/dist/subscription.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
|
package/dist/transport.d.ts
CHANGED
|
@@ -155,9 +155,13 @@ export declare class TestTransport implements FallbackTransport {
|
|
|
155
155
|
readonly streamConnects: TransportRequest[];
|
|
156
156
|
/** Whether each denied connect's request was aborted by the core. */
|
|
157
157
|
readonly deniedConnectAborts: boolean[];
|
|
158
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* Queue a denial for the next stream connect: a status (with the headers it
|
|
160
|
+
* answers with, a 200 carrying the wrong content-type included) or a network error.
|
|
161
|
+
*/
|
|
159
162
|
denyNextStreamConnect(denial: {
|
|
160
163
|
status?: number;
|
|
164
|
+
headers?: Record<string, string>;
|
|
161
165
|
error?: Error;
|
|
162
166
|
}): void;
|
|
163
167
|
/**
|
package/dist/transport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
package/dist/transport.js
CHANGED
|
@@ -32,7 +32,10 @@ export class TestTransport {
|
|
|
32
32
|
streamConnects = [];
|
|
33
33
|
/** Whether each denied connect's request was aborted by the core. */
|
|
34
34
|
deniedConnectAborts = [];
|
|
35
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Queue a denial for the next stream connect: a status (with the headers it
|
|
37
|
+
* answers with, a 200 carrying the wrong content-type included) or a network error.
|
|
38
|
+
*/
|
|
36
39
|
denyNextStreamConnect(denial) {
|
|
37
40
|
this.connectDenials.push(denial);
|
|
38
41
|
}
|
|
@@ -87,7 +90,7 @@ export class TestTransport {
|
|
|
87
90
|
}, { once: true });
|
|
88
91
|
return Promise.resolve({
|
|
89
92
|
status: denial.status,
|
|
90
|
-
headers: {},
|
|
93
|
+
headers: denial.headers ?? {},
|
|
91
94
|
chunks: emptyChunks(),
|
|
92
95
|
});
|
|
93
96
|
}
|
package/dist/transport.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAqHhE,8EAA8E;AAC9E,MAAM,UAAU,sBAAsB,CAAC,QAAwB;IAC7D,OAAO,QAAQ,IAAI,QAAQ,CAAA;AAC7B,CAAC;AAqCD;;;;;GAKG;AACH,MAAM,OAAO,aAAa;IACxB;;;;OAIG;IACH,UAAU,GAAqB,KAAK,CAAA;IACpC,uEAAuE;IACvE,UAAU,CAAmC;IAC7C,oEAAoE;IACpE,eAAe,CAAqC;IACpD,6EAA6E;IAC5D,cAAc,
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../src/transport.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED