@spine-event-engine/delivery-client 2.0.0-snapshot.2
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/LICENSE +201 -0
- package/README.md +133 -0
- package/REFERENCE.md +89 -0
- package/dist/client/client.d.ts +143 -0
- package/dist/client/client.d.ts.map +1 -0
- package/dist/client/client.js +459 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/shard-observation.d.ts +35 -0
- package/dist/client/shard-observation.d.ts.map +1 -0
- package/dist/client/shard-observation.js +178 -0
- package/dist/client/shard-observation.js.map +1 -0
- package/dist/client/types.d.ts +229 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +128 -0
- package/dist/client/types.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/remote/adapters.d.ts +102 -0
- package/dist/remote/adapters.d.ts.map +1 -0
- package/dist/remote/adapters.js +405 -0
- package/dist/remote/adapters.js.map +1 -0
- package/dist/remote/remote-delivery.d.ts +65 -0
- package/dist/remote/remote-delivery.d.ts.map +1 -0
- package/dist/remote/remote-delivery.js +176 -0
- package/dist/remote/remote-delivery.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/wire/codec.d.ts +107 -0
- package/dist/wire/codec.d.ts.map +1 -0
- package/dist/wire/codec.js +776 -0
- package/dist/wire/codec.js.map +1 -0
- package/package.json +35 -0
|
@@ -0,0 +1,459 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026, CodeMatters. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
|
|
5
|
+
* in compliance with the License. You may obtain a copy of the License at
|
|
6
|
+
*
|
|
7
|
+
* https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
*
|
|
9
|
+
* Unless required by applicable law or agreed to in writing, software distributed under the License
|
|
10
|
+
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
|
11
|
+
* or implied. See the License for the specific language governing permissions and limitations under
|
|
12
|
+
* the License.
|
|
13
|
+
*/
|
|
14
|
+
var _a;
|
|
15
|
+
import { create } from "@bufbuild/protobuf";
|
|
16
|
+
import { EmptySchema } from "@bufbuild/protobuf/wkt";
|
|
17
|
+
import { Code, ConnectError, createClient } from "@connectrpc/connect";
|
|
18
|
+
import { createGrpcTransport, Http2SessionManager } from "@connectrpc/connect-node";
|
|
19
|
+
import { ShardIndex } from "@spine-event-engine/server";
|
|
20
|
+
import { InboxService, AdminService, ShardService, PageOfMessagesSchema, OptionalInboxMessageSchema, ShardInfoListSchema, LiquorPickUpOutcomeSchema as PickUpOutcomeSchema, ExpiredSessionsReleasedSchema, PickUpShardSchema, ReadMessagesSinceTimeSchema as ReadMessagesSchema, RemoveMessageSchema, RemoveMessagesSchema, ReleaseExpiredSessionsSchema, ReleaseShardSchema, WriteMessageSchema, WriteMessagesSchema, } from "@spine-event-engine/proto/delivery-server";
|
|
21
|
+
import { InboxMessageIdSchema, ShardIndexSchema } from "@spine-event-engine/proto/delivery";
|
|
22
|
+
import { DeliveryOutcomeUnknownError, MAX_DELIVERY_RPC_BYTES, MAX_DELIVERY_TRACKED_SHARDS, } from "./types.js";
|
|
23
|
+
import { ShardObservationStream } from "./shard-observation.js";
|
|
24
|
+
import { DeliveryMessageCodec, DeliveryRequestCodec, DeliveryShardCodec } from "../wire/codec.js";
|
|
25
|
+
export { DeliveryOutcomeUnknownError, DeliveryPagingError, DeliveryProtocolError, DeliveryShardObservationError, ShardObservationOverflowError, MAX_DELIVERY_BATCH_MESSAGES, MAX_INBOX_PAYLOAD_BYTES, MAX_DELIVERY_RPC_BYTES, } from "./types.js";
|
|
26
|
+
/**
|
|
27
|
+
* Provides a Node client for the frozen delivery-server gRPC API.
|
|
28
|
+
*/
|
|
29
|
+
export class DeliveryClient {
|
|
30
|
+
#inbox;
|
|
31
|
+
#shards;
|
|
32
|
+
#admin;
|
|
33
|
+
#pageSize;
|
|
34
|
+
#readRetries;
|
|
35
|
+
#retryBackoffMs;
|
|
36
|
+
#observationReconnects;
|
|
37
|
+
#observationReconnectBackoffMs;
|
|
38
|
+
#observationBufferSize;
|
|
39
|
+
#activeReads = new Set();
|
|
40
|
+
#onCloseOwnedTransport;
|
|
41
|
+
#closed = false;
|
|
42
|
+
constructor(transport, options, onCloseOwnedTransport) {
|
|
43
|
+
this.#pageSize = DeliveryRequestCodec.pageSize(options.pageSize ?? 100);
|
|
44
|
+
this.#readRetries = DeliveryRequestCodec.retries(options.readRetries ?? 0);
|
|
45
|
+
this.#retryBackoffMs = DeliveryRequestCodec.backoff(options.retryBackoffMs ?? 0);
|
|
46
|
+
this.#observationReconnects = DeliveryRequestCodec.retries(options.observationReconnects ?? 0);
|
|
47
|
+
this.#observationReconnectBackoffMs = DeliveryRequestCodec.backoff(options.observationReconnectBackoffMs ?? 0);
|
|
48
|
+
this.#observationBufferSize = DeliveryRequestCodec.bounded(options.observationBufferSize ?? 100, 1, 1_000, "Delivery observation buffer size");
|
|
49
|
+
this.#inbox = createClient(InboxService, transport);
|
|
50
|
+
this.#shards = createClient(ShardService, transport);
|
|
51
|
+
this.#admin = createClient(AdminService, transport);
|
|
52
|
+
this.#onCloseOwnedTransport = onCloseOwnedTransport;
|
|
53
|
+
deliveryClientProbes.set(this, (shardIndex, workerId, options) => this.#probePickUp(shardIndex, workerId, options));
|
|
54
|
+
deliveryClientObservations.set(this, (options) => this.#observeShardUpdates(options, 0));
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Gets the bounded page size configured for this client.
|
|
58
|
+
* @returns The maximum number of messages requested by default.
|
|
59
|
+
*/
|
|
60
|
+
get pageSize() {
|
|
61
|
+
return this.#pageSize;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Creates a client over a caller-owned standard Connect transport.
|
|
65
|
+
* @param transport Sends requests to the remote delivery service.
|
|
66
|
+
* @param options Configures bounded reads and observations.
|
|
67
|
+
* @returns A client that never closes the supplied transport.
|
|
68
|
+
*/
|
|
69
|
+
static usingTransport(transport, options = {}) {
|
|
70
|
+
return new _a(transport, options);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Connects to a JVM delivery server with a client-owned HTTP/2 gRPC session.
|
|
74
|
+
*
|
|
75
|
+
* The URL and options are validated before opening the session. `close()` is
|
|
76
|
+
* synchronous: it aborts active calls and the owned session immediately; it
|
|
77
|
+
* does not wait for remote stream cleanup. Use {@link usingTransport} when
|
|
78
|
+
* the caller owns the transport lifecycle.
|
|
79
|
+
* @param baseUrl Supplies the absolute HTTP(S) delivery-server origin.
|
|
80
|
+
* @param options Configures bounded reads and observations.
|
|
81
|
+
* @returns A client that aborts its owned session when closed.
|
|
82
|
+
*/
|
|
83
|
+
static connectTo(baseUrl, options = {}) {
|
|
84
|
+
const normalized = DeliveryRequestCodec.normalize(options);
|
|
85
|
+
DeliveryRequestCodec.baseUrl(baseUrl);
|
|
86
|
+
const sessions = new Http2SessionManager(baseUrl);
|
|
87
|
+
return new _a(createGrpcTransport({
|
|
88
|
+
baseUrl,
|
|
89
|
+
sessionManager: sessions,
|
|
90
|
+
readMaxBytes: MAX_DELIVERY_RPC_BYTES,
|
|
91
|
+
writeMaxBytes: MAX_DELIVERY_RPC_BYTES,
|
|
92
|
+
}), normalized, () => {
|
|
93
|
+
sessions.abort();
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Reads validated detached Admin observations.
|
|
98
|
+
* @param options Bounds or cancels the read.
|
|
99
|
+
* @returns Detached observations that callers may safely mutate.
|
|
100
|
+
*/
|
|
101
|
+
async shardSnapshot(options = {}) {
|
|
102
|
+
const request = create(EmptySchema);
|
|
103
|
+
DeliveryRequestCodec.requestBytes(EmptySchema, request);
|
|
104
|
+
const response = await this.#read(options, (signal, timeoutMs) => this.#admin.getShardInfo(request, DeliveryRequestCodec.callOptions(signal, timeoutMs)));
|
|
105
|
+
DeliveryRequestCodec.responseBytes(ShardInfoListSchema, response);
|
|
106
|
+
if (response.shards.length > MAX_DELIVERY_TRACKED_SHARDS)
|
|
107
|
+
throw DeliveryRequestCodec.protocol();
|
|
108
|
+
return Object.freeze(response.shards.map((value) => DeliveryShardCodec.decodeObservation(value)));
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Starts an ACK-gated Admin shard-update observation stream.
|
|
112
|
+
* @param options Bounds stream setup and cancels its lifetime.
|
|
113
|
+
* @returns A cancellable stream of detached shard observations.
|
|
114
|
+
*/
|
|
115
|
+
observeShardUpdates(options = {}) {
|
|
116
|
+
return this.#observeShardUpdates(options, this.#observationReconnects);
|
|
117
|
+
}
|
|
118
|
+
#observeShardUpdates(options, reconnects) {
|
|
119
|
+
if (this.#closed)
|
|
120
|
+
throw new Error("Delivery client is closed.");
|
|
121
|
+
if (options.signal?.aborted)
|
|
122
|
+
throw options.signal.reason;
|
|
123
|
+
const controller = new AbortController();
|
|
124
|
+
const callerAbort = () => {
|
|
125
|
+
controller.abort(options.signal?.reason);
|
|
126
|
+
};
|
|
127
|
+
options.signal?.addEventListener("abort", callerAbort, { once: true });
|
|
128
|
+
this.#activeReads.add(controller);
|
|
129
|
+
return new ShardObservationStream({
|
|
130
|
+
signal: controller.signal,
|
|
131
|
+
setupTimeoutMs: DeliveryRequestCodec.timeout(options.timeoutMs ?? 30_000),
|
|
132
|
+
capacity: this.#observationBufferSize,
|
|
133
|
+
reconnects,
|
|
134
|
+
reconnectBackoffMs: this.#observationReconnectBackoffMs,
|
|
135
|
+
open: (signal) => this.#admin.subscribeToShardUpdates(create(EmptySchema), DeliveryRequestCodec.callOptions(signal)),
|
|
136
|
+
acknowledge: (frame) => frame.value.case === "created" && frame.value.value,
|
|
137
|
+
decodeUpdate: (frame) => {
|
|
138
|
+
if (frame.value.case !== "update")
|
|
139
|
+
throw DeliveryRequestCodec.protocol();
|
|
140
|
+
return DeliveryShardCodec.decodeUpdate(frame.value.value);
|
|
141
|
+
},
|
|
142
|
+
finish: () => {
|
|
143
|
+
options.signal?.removeEventListener("abort", callerAbort);
|
|
144
|
+
this.#activeReads.delete(controller);
|
|
145
|
+
},
|
|
146
|
+
cancel: () => {
|
|
147
|
+
controller.abort(new Error("Delivery shard observation cancelled."));
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Finds and decodes one inbox message.
|
|
153
|
+
* @param id Identifies the inbox message and its shard.
|
|
154
|
+
* @param options Bounds or cancels the safe read.
|
|
155
|
+
* @returns The detached message, or `undefined` when absent.
|
|
156
|
+
*/
|
|
157
|
+
async findOne(id, options = {}) {
|
|
158
|
+
const request = create(InboxMessageIdSchema, {
|
|
159
|
+
uuid: DeliveryMessageCodec.encodeId(id),
|
|
160
|
+
index: DeliveryShardCodec.encode(id.shard),
|
|
161
|
+
});
|
|
162
|
+
DeliveryRequestCodec.requestBytes(InboxMessageIdSchema, request);
|
|
163
|
+
const response = await this.#read(options, (signal, timeoutMs) => this.#inbox.findOne(request, { timeoutMs, signal }));
|
|
164
|
+
DeliveryRequestCodec.responseBytes(OptionalInboxMessageSchema, response);
|
|
165
|
+
return response.message === undefined
|
|
166
|
+
? undefined
|
|
167
|
+
: DeliveryMessageCodec.decode(response.message, id.shard);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Reads and decodes the first bounded ordered page for one shard.
|
|
171
|
+
*
|
|
172
|
+
* A server rejects an encoded response above 4 MiB with `RESOURCE_EXHAUSTED`;
|
|
173
|
+
* retry this safe read with a smaller `pageSize`.
|
|
174
|
+
* @param shardIndex Identifies the shard to read.
|
|
175
|
+
* @param options Supplies page continuation, size, and read bounds.
|
|
176
|
+
* @returns Detached messages in remote timestamp order.
|
|
177
|
+
*/
|
|
178
|
+
async readPage(shardIndex, options = {}) {
|
|
179
|
+
const size = options.pageSize === undefined
|
|
180
|
+
? this.#pageSize
|
|
181
|
+
: DeliveryRequestCodec.pageSize(options.pageSize);
|
|
182
|
+
const sinceWhen = options.sinceWhen === undefined
|
|
183
|
+
? undefined
|
|
184
|
+
: DeliveryRequestCodec.timestamp(options.sinceWhen);
|
|
185
|
+
const request = create(ReadMessagesSchema, {
|
|
186
|
+
shard: DeliveryShardCodec.encode(shardIndex),
|
|
187
|
+
pageSize: size,
|
|
188
|
+
...(sinceWhen === undefined ? {} : { sinceWhen }),
|
|
189
|
+
});
|
|
190
|
+
DeliveryRequestCodec.requestBytes(ReadMessagesSchema, request);
|
|
191
|
+
const response = await this.#read(options, (signal, timeoutMs) => this.#inbox.findManyInShard(request, { timeoutMs, signal }));
|
|
192
|
+
DeliveryRequestCodec.responseBytes(PageOfMessagesSchema, response);
|
|
193
|
+
if (response.message.length > size)
|
|
194
|
+
throw DeliveryRequestCodec.protocol();
|
|
195
|
+
return Object.freeze(response.message.map((message) => DeliveryMessageCodec.decode(message, shardIndex)));
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Finds and decodes the newest pending message in a shard.
|
|
199
|
+
* @param shardIndex Identifies the shard to inspect.
|
|
200
|
+
* @param options Bounds or cancels the safe read.
|
|
201
|
+
* @returns The detached newest message, or `undefined` when absent.
|
|
202
|
+
*/
|
|
203
|
+
async newestPending(shardIndex, options = {}) {
|
|
204
|
+
const request = DeliveryShardCodec.encode(shardIndex);
|
|
205
|
+
DeliveryRequestCodec.requestBytes(ShardIndexSchema, request);
|
|
206
|
+
const response = await this.#read(options, (signal, timeoutMs) => this.#inbox.newestMessageToDeliver(request, { timeoutMs, signal }));
|
|
207
|
+
DeliveryRequestCodec.responseBytes(OptionalInboxMessageSchema, response);
|
|
208
|
+
return response.message === undefined
|
|
209
|
+
? undefined
|
|
210
|
+
: DeliveryMessageCodec.decode(response.message, shardIndex);
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Writes one message with exactly one delivery-server RPC attempt.
|
|
214
|
+
* @param message Supplies the message to write.
|
|
215
|
+
* @param options Bounds or cancels the mutation.
|
|
216
|
+
* @returns A promise that completes after the delivery server accepts the message.
|
|
217
|
+
*/
|
|
218
|
+
async writeOne(message, options = {}) {
|
|
219
|
+
const wire = DeliveryMessageCodec.encode(message);
|
|
220
|
+
const request = create(WriteMessageSchema, { message: wire });
|
|
221
|
+
DeliveryRequestCodec.requestBytes(WriteMessageSchema, request);
|
|
222
|
+
await this.#mutation("WRITE_ONE", [message.id.value], options, (signal, timeoutMs) => this.#inbox.writeOne(request, DeliveryRequestCodec.callOptions(signal, timeoutMs)));
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Removes one message with exactly one delivery-server RPC attempt.
|
|
226
|
+
* @param message Supplies the message to remove.
|
|
227
|
+
* @param options Bounds or cancels the mutation.
|
|
228
|
+
* @returns A promise that completes after the delivery server removes the message.
|
|
229
|
+
*/
|
|
230
|
+
async removeOne(message, options = {}) {
|
|
231
|
+
const wire = DeliveryMessageCodec.encode(message);
|
|
232
|
+
const request = create(RemoveMessageSchema, { message: wire });
|
|
233
|
+
DeliveryRequestCodec.requestBytes(RemoveMessageSchema, request);
|
|
234
|
+
await this.#mutation("REMOVE_ONE", [message.id.value], options, (signal, timeoutMs) => this.#inbox.removeOne(request, DeliveryRequestCodec.callOptions(signal, timeoutMs)));
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Writes one bounded same-shard batch with exactly one delivery-server RPC attempt.
|
|
238
|
+
* @param messages Supplies the messages to write.
|
|
239
|
+
* @param options Bounds or cancels the mutation.
|
|
240
|
+
* @returns A promise that completes after the delivery server accepts the batch.
|
|
241
|
+
*/
|
|
242
|
+
async writeMany(messages, options = {}) {
|
|
243
|
+
const batch = DeliveryMessageCodec.encodeBatch(messages);
|
|
244
|
+
const request = create(WriteMessagesSchema, { shard: batch.shard, message: batch.messages });
|
|
245
|
+
DeliveryRequestCodec.requestBytes(WriteMessagesSchema, request);
|
|
246
|
+
await this.#mutation("WRITE_MANY", batch.ids, options, (signal, timeoutMs) => this.#inbox.writeMany(request, DeliveryRequestCodec.callOptions(signal, timeoutMs)));
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Removes one bounded same-shard batch with exactly one delivery-server RPC attempt.
|
|
250
|
+
* @param messages Supplies the messages to remove.
|
|
251
|
+
* @param options Bounds or cancels the mutation.
|
|
252
|
+
* @returns A promise that completes after the delivery server removes the batch.
|
|
253
|
+
*/
|
|
254
|
+
async removeMany(messages, options = {}) {
|
|
255
|
+
const batch = DeliveryMessageCodec.encodeBatch(messages);
|
|
256
|
+
const request = create(RemoveMessagesSchema, { shard: batch.shard, message: batch.messages });
|
|
257
|
+
DeliveryRequestCodec.requestBytes(RemoveMessagesSchema, request);
|
|
258
|
+
await this.#mutation("REMOVE_MANY", batch.ids, options, (signal, timeoutMs) => this.#inbox.removeMany(request, DeliveryRequestCodec.callOptions(signal, timeoutMs)));
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Acquires a shard once.
|
|
262
|
+
* @param shardIndex Identifies the shard to acquire.
|
|
263
|
+
* @param workerId Identifies the worker requesting exclusive ownership.
|
|
264
|
+
* @param options Bounds or cancels the mutation.
|
|
265
|
+
* @returns A detached exclusive session, or `undefined` when held elsewhere.
|
|
266
|
+
*/
|
|
267
|
+
async pickUp(shardIndex, workerId, options = {}) {
|
|
268
|
+
const result = await this.#probePickUp(shardIndex, workerId, options);
|
|
269
|
+
return result.kind === "PICKED" ? result.session : undefined;
|
|
270
|
+
}
|
|
271
|
+
async #probePickUp(shardIndex, workerId, options) {
|
|
272
|
+
const requestedShard = DeliveryShardCodec.encode(shardIndex);
|
|
273
|
+
const requestedWorker = DeliveryShardCodec.encodeWorker(workerId);
|
|
274
|
+
const response = await this.#mutation("PICK_UP_SHARD", [DeliveryShardCodec.snapshot(shardIndex)], options, async (signal, timeoutMs) => {
|
|
275
|
+
const request = create(PickUpShardSchema, {
|
|
276
|
+
shard: requestedShard,
|
|
277
|
+
worker: requestedWorker,
|
|
278
|
+
});
|
|
279
|
+
DeliveryRequestCodec.requestBytes(PickUpShardSchema, request);
|
|
280
|
+
return {
|
|
281
|
+
kind: "PICKED",
|
|
282
|
+
value: await this.#shards.pickShard(request, DeliveryRequestCodec.callOptions(signal, timeoutMs)),
|
|
283
|
+
};
|
|
284
|
+
});
|
|
285
|
+
DeliveryRequestCodec.responseBytes(PickUpOutcomeSchema, response.value);
|
|
286
|
+
if (response.value.value.case === "alreadyPickedUp") {
|
|
287
|
+
const held = response.value.value.value;
|
|
288
|
+
DeliveryShardCodec.validatePicked(held, shardIndex);
|
|
289
|
+
if (held.worker === undefined || held.whenPicked === undefined)
|
|
290
|
+
throw DeliveryRequestCodec.protocol();
|
|
291
|
+
return Object.freeze({
|
|
292
|
+
kind: "ALREADY_PICKED",
|
|
293
|
+
session: Object.freeze({
|
|
294
|
+
kind: "EXCLUSIVE",
|
|
295
|
+
shard: DeliveryShardCodec.snapshot(shardIndex),
|
|
296
|
+
worker: DeliveryShardCodec.decodeWorker(held.worker),
|
|
297
|
+
whenPicked: DeliveryShardCodec.date(held.whenPicked),
|
|
298
|
+
}),
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
if (response.value.value.case !== "pickedUp")
|
|
302
|
+
throw DeliveryRequestCodec.protocol();
|
|
303
|
+
const picked = DeliveryShardCodec.decodePicked(response.value.value.value, shardIndex, workerId);
|
|
304
|
+
return Object.freeze({ kind: "PICKED", session: picked });
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Performs one exclusive shard-session release.
|
|
308
|
+
* @param value Supplies the session to release.
|
|
309
|
+
* @param options Bounds or cancels the mutation.
|
|
310
|
+
* @returns A promise that completes after the delivery server releases the session.
|
|
311
|
+
*/
|
|
312
|
+
async release(value, options = {}) {
|
|
313
|
+
const sessionShard = DeliveryShardCodec.encode(value.shard);
|
|
314
|
+
const sessionWorker = DeliveryShardCodec.encodeWorker(value.worker);
|
|
315
|
+
if (!(value.whenPicked instanceof Date) || Number.isNaN(value.whenPicked.getTime()))
|
|
316
|
+
throw new TypeError("Delivery shard session is invalid.");
|
|
317
|
+
await this.#mutation("RELEASE_SHARD", [DeliveryShardCodec.snapshot(value.shard)], options, (signal, timeoutMs) => {
|
|
318
|
+
const request = create(ReleaseShardSchema, { shard: sessionShard, worker: sessionWorker });
|
|
319
|
+
DeliveryRequestCodec.requestBytes(ReleaseShardSchema, request);
|
|
320
|
+
return this.#shards.releaseSession(request, DeliveryRequestCodec.callOptions(signal, timeoutMs));
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Performs releases for sessions inactive for a positive duration.
|
|
325
|
+
* @param inactivityMs Supplies the minimum inactivity in milliseconds.
|
|
326
|
+
* @param options Bounds or cancels the mutation.
|
|
327
|
+
* @returns Detached sessions released by the remote service.
|
|
328
|
+
*/
|
|
329
|
+
async releaseExpired(inactivityMs, options = {}) {
|
|
330
|
+
const inactivityPeriod = DeliveryRequestCodec.duration(inactivityMs);
|
|
331
|
+
const response = await this.#mutation("RELEASE_EXPIRED", "ALL_SHARDS", options, (signal, timeoutMs) => {
|
|
332
|
+
const request = create(ReleaseExpiredSessionsSchema, { inactivityPeriod });
|
|
333
|
+
DeliveryRequestCodec.requestBytes(ReleaseExpiredSessionsSchema, request);
|
|
334
|
+
return this.#shards.releaseSessions(request, DeliveryRequestCodec.callOptions(signal, timeoutMs));
|
|
335
|
+
});
|
|
336
|
+
try {
|
|
337
|
+
DeliveryRequestCodec.responseBytes(ExpiredSessionsReleasedSchema, response);
|
|
338
|
+
if (response.shard.length > MAX_DELIVERY_TRACKED_SHARDS)
|
|
339
|
+
throw DeliveryRequestCodec.protocol();
|
|
340
|
+
return Object.freeze(response.shard.map((value) => DeliveryShardCodec.decodeReleased(value)));
|
|
341
|
+
}
|
|
342
|
+
catch {
|
|
343
|
+
throw new DeliveryOutcomeUnknownError("RELEASE_EXPIRED", "ALL_SHARDS");
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Closes this client by permanently aborting active reads and streams. This synchronous, idempotent
|
|
348
|
+
* method also aborts an owned HTTP/2 session, but never closes injected transport.
|
|
349
|
+
*/
|
|
350
|
+
close() {
|
|
351
|
+
if (this.#closed)
|
|
352
|
+
return;
|
|
353
|
+
this.#closed = true;
|
|
354
|
+
for (const controller of this.#activeReads)
|
|
355
|
+
controller.abort(new Error("Delivery client is closed."));
|
|
356
|
+
this.#onCloseOwnedTransport?.();
|
|
357
|
+
}
|
|
358
|
+
async #read(options, operation) {
|
|
359
|
+
if (this.#closed)
|
|
360
|
+
throw new Error("Delivery client is closed.");
|
|
361
|
+
if (options.signal?.aborted)
|
|
362
|
+
throw options.signal.reason;
|
|
363
|
+
const timeoutMs = DeliveryRequestCodec.timeout(options.timeoutMs ?? 30_000);
|
|
364
|
+
const controller = new AbortController();
|
|
365
|
+
const abort = () => {
|
|
366
|
+
controller.abort(options.signal?.reason);
|
|
367
|
+
};
|
|
368
|
+
options.signal?.addEventListener("abort", abort, { once: true });
|
|
369
|
+
this.#activeReads.add(controller);
|
|
370
|
+
try {
|
|
371
|
+
for (let attempt = 0;; attempt++) {
|
|
372
|
+
try {
|
|
373
|
+
return await operation(controller.signal, timeoutMs);
|
|
374
|
+
}
|
|
375
|
+
catch (error) {
|
|
376
|
+
if (controller.signal.aborted)
|
|
377
|
+
throw error;
|
|
378
|
+
if (error instanceof ConnectError && error.code === Code.ResourceExhausted)
|
|
379
|
+
throw error;
|
|
380
|
+
if (!_a.#isRetryableReadError(error))
|
|
381
|
+
throw DeliveryRequestCodec.protocol();
|
|
382
|
+
if (attempt === this.#readRetries)
|
|
383
|
+
throw error;
|
|
384
|
+
await _a.#pause(this.#retryBackoffMs, controller.signal);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
finally {
|
|
389
|
+
options.signal?.removeEventListener("abort", abort);
|
|
390
|
+
this.#activeReads.delete(controller);
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
async #mutation(operation, reconciliation, options, invoke) {
|
|
394
|
+
if (this.#closed)
|
|
395
|
+
throw new Error("Delivery client is closed.");
|
|
396
|
+
if (options.signal?.aborted)
|
|
397
|
+
throw options.signal.reason;
|
|
398
|
+
const timeoutMs = DeliveryRequestCodec.timeout(options.timeoutMs ?? 30_000);
|
|
399
|
+
const controller = new AbortController();
|
|
400
|
+
const abort = () => {
|
|
401
|
+
controller.abort(options.signal?.reason);
|
|
402
|
+
};
|
|
403
|
+
options.signal?.addEventListener("abort", abort, { once: true });
|
|
404
|
+
this.#activeReads.add(controller);
|
|
405
|
+
try {
|
|
406
|
+
return await invoke(controller.signal, timeoutMs);
|
|
407
|
+
}
|
|
408
|
+
catch (error) {
|
|
409
|
+
if (error instanceof ConnectError && error.code === Code.InvalidArgument)
|
|
410
|
+
throw DeliveryRequestCodec.protocol();
|
|
411
|
+
throw new DeliveryOutcomeUnknownError(operation, reconciliation);
|
|
412
|
+
}
|
|
413
|
+
finally {
|
|
414
|
+
options.signal?.removeEventListener("abort", abort);
|
|
415
|
+
this.#activeReads.delete(controller);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
static #pause(delay, signal) {
|
|
419
|
+
if (delay === 0)
|
|
420
|
+
return Promise.resolve();
|
|
421
|
+
return new Promise((resolve, reject) => {
|
|
422
|
+
const timer = setTimeout(() => {
|
|
423
|
+
signal.removeEventListener("abort", abort);
|
|
424
|
+
resolve();
|
|
425
|
+
}, delay);
|
|
426
|
+
const abort = () => {
|
|
427
|
+
clearTimeout(timer);
|
|
428
|
+
reject(signal.reason instanceof Error ? signal.reason : new Error("Delivery read aborted."));
|
|
429
|
+
};
|
|
430
|
+
signal.addEventListener("abort", abort, { once: true });
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
static #isRetryableReadError(error) {
|
|
434
|
+
if (!(error instanceof ConnectError))
|
|
435
|
+
return true;
|
|
436
|
+
return error.code === Code.Unavailable || error.code === Code.DeadlineExceeded;
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
_a = DeliveryClient;
|
|
440
|
+
const deliveryClientProbes = new WeakMap();
|
|
441
|
+
const deliveryClientObservations = new WeakMap();
|
|
442
|
+
/**
|
|
443
|
+
* Provides package-internal frozen-wire ownership probes without extending the public client API.
|
|
444
|
+
*/
|
|
445
|
+
export const deliveryClientAccess = Object.freeze({
|
|
446
|
+
probePickUp(client, shardIndex, workerId, options) {
|
|
447
|
+
const probe = deliveryClientProbes.get(client);
|
|
448
|
+
if (probe === undefined)
|
|
449
|
+
throw new TypeError("Delivery client probe access is unavailable.");
|
|
450
|
+
return probe(shardIndex, workerId, options);
|
|
451
|
+
},
|
|
452
|
+
observeOnce(client, options = {}) {
|
|
453
|
+
const observe = deliveryClientObservations.get(client);
|
|
454
|
+
if (observe === undefined)
|
|
455
|
+
throw new TypeError("Delivery client observation access is unavailable.");
|
|
456
|
+
return observe(options);
|
|
457
|
+
},
|
|
458
|
+
});
|
|
459
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { SubscriptionResponse } from "@spine-event-engine/proto/delivery-server";
|
|
2
|
+
import { type DeliveryShardObservationStream, type RemoteShardObservation } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Buffers one bounded, reconnecting remote shard-observation stream.
|
|
5
|
+
*/
|
|
6
|
+
export declare class ShardObservationStream implements DeliveryShardObservationStream {
|
|
7
|
+
#private;
|
|
8
|
+
private readonly config;
|
|
9
|
+
/**
|
|
10
|
+
* Creates and begins an observation stream.
|
|
11
|
+
* @param config Supplies bounded transport, decoding, and cleanup operations.
|
|
12
|
+
*/
|
|
13
|
+
constructor(config: {
|
|
14
|
+
readonly signal: AbortSignal;
|
|
15
|
+
readonly setupTimeoutMs: number;
|
|
16
|
+
readonly capacity: number;
|
|
17
|
+
readonly reconnects: number;
|
|
18
|
+
readonly reconnectBackoffMs: number;
|
|
19
|
+
readonly open: (signal: AbortSignal) => AsyncIterable<SubscriptionResponse>;
|
|
20
|
+
readonly acknowledge: (frame: SubscriptionResponse) => boolean;
|
|
21
|
+
readonly decodeUpdate: (frame: SubscriptionResponse) => RemoteShardObservation;
|
|
22
|
+
readonly finish: () => void;
|
|
23
|
+
readonly cancel: () => void;
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Cancels this stream and releases its local resources.
|
|
27
|
+
*/
|
|
28
|
+
cancel(): void;
|
|
29
|
+
/**
|
|
30
|
+
* Returns this stream's async iterator.
|
|
31
|
+
* @returns An iterator that yields detached observations.
|
|
32
|
+
*/
|
|
33
|
+
[Symbol.asyncIterator](): AsyncIterator<RemoteShardObservation>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=shard-observation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shard-observation.d.ts","sourceRoot":"","sources":["../../src/client/shard-observation.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,OAAO,EAIL,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAC5B,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,sBAAuB,YAAW,8BAA8B;;IAWzE,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB;;;OAGG;gBAEgB,MAAM,EAAE;QACvB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;QAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;QAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;QACpC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,aAAa,CAAC,oBAAoB,CAAC,CAAC;QAC5E,QAAQ,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC;QAC/D,QAAQ,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,sBAAsB,CAAC;QAC/E,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;QAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;KAC7B;IAKH;;OAEG;IACH,MAAM,IAAI,IAAI;IAMd;;;OAGG;IACH,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,sBAAsB,CAAC;CA+HhE"}
|